PDA

View Full Version : سوال: آموزش مفهوم چند خط کد در PHP



scofield007
جمعه 14 فروردین 1394, 17:37 عصر
با سلام

از دوستان مسلط به php خواهش دارم در کد زیر خط 98 تا 110 رو توضیح بدهند که چی کار میکنه؟

ممنونم


<?phpini_set("session.cookie_lifetime" , 300000);
session_start();
class Product {
public $id;
public $name;
public $price;

public function __construct($id, $name, $price) {
$this->id = $id;
$this->name = $name;
$this->price = $price;
}
}
$products = array(
1 => new Product( 1, "نرم افزار PhpStorm", 2000 ),
2 => new Product( 2, "کتاب آموزش PHP", 3000 ),
3 => new Product( 3, "کتاب آموزش JavaScript", 4000 )
);

if (!isset($_SESSION["cart"]))
$_SESSION["cart"] = array();

if (isset( $_GET["action"] ) and $_GET["action"] == "addItem") {
addItem();
} elseif ( isset( $_GET["action"] ) and $_GET["action"] == "removeItem" ) {
removeItem();
} else {
displayCart();
}

function addItem() {
if(isset($_GET["id"] ) and $_GET["id"] >= 1 and $_GET["id"] <= 3 ) {
$id = $_GET["id"];
if(!isset( $_SESSION["cart"][$id])) {
$_SESSION["cart"][$id] = 1;
}else{
$_SESSION["cart"][$id]++;
}
}
displayCart();
}

function removeItem() {
if ( isset( $_GET["id"] ) and $_GET["id"] >= 1 and $_GET["id"] <= 3 ) {
$id = $_GET["id"];
if (isset( $_SESSION["cart"][$id]) and $_SESSION["cart"][$id] > 1) {
$_SESSION["cart"][$id]--;
}else{
unset( $_SESSION["cart"][$id]);
}
}
displayCart();
}

function displayCart() {
global $products;
?>
<!DOCTYPE html>
<html style="direction: rtl">
<head>
<title>Shopping Cart</title>
<meta charset="utf-8" />
<style>
table{
border-collapse: collapse;
text-align: center;
border: 1px solid black;
font-family: tahoma;
}
td,th{
border:1px solid black;
padding: 8px;
}
a{
text-decoration: none;
color: white;
display: block;
float: right;
background-color: blue;
margin-left: 10px;
margin-right: 10px;
padding: 4px;
}
</style>
</head>
<body>
<h2>سبد خرید شما</h2>
<table>
<tr>
<th>نام کالا</th>
<th>قیمت واحد</th>
<th>تعداد</th>
<th>قیمت کل</th>
</tr>
<?php
$totalCount = 0;
$totalPrice = 0;
foreach($_SESSION["cart"] as $key => $value){ ?>
<tr>
<td><?php echo $products[$key]->name ?></td>
<td><?php echo $products[$key]->price ?></td>
<td><?php
echo $value;
$totalCount += $value;
?></td>
<td><?php
echo $value * $products[$key]->price;
$totalPrice += ($value * $products[$key]->price);
?></td>
</tr>
<?php } ?>
<tr>
<th>جمع فاکتور</th>
<th></th>
<th><?php echo $totalCount ?></th>
<th><?php echo $totalPrice ?></th>
</tr>
</table>
<h3>کالاهای موجود در فروشگاه</h3>
<table>
<tr>
<th>کد کالا</th>
<th>نام کالا</th>
<th>قیمت</th>
<th>عملیات</th>
</tr>
<?php foreach($products as $product){ ?>
<tr>
<td><?php echo $product->id ?></td>
<td><?php echo $product->name ?></td>
<td><?php echo $product->price ?></td>
<td><a href="shopping.php?action=addItem&amp;id=<?php echo $product->id ?>">افزودن</a>
<a href="shopping.php?action=removeItem&amp;id=<?php echo $product->id ?>">کم کردن</a></td>
</tr>
<?php
}
?>
</table>
</body>
</html>
<?php
}
?>

reza_alie
جمعه 14 فروردین 1394, 18:23 عصر
سلام


foreach($_SESSION["cart"] as $key => $value){ ?> <tr> <td><?php echo $products[$key]->name ?></td> <td><?php echo $products[$key]->price ?></td> <td><?php echo $value; $totalCount += $value; ?></td> <td><?php echo $value * $products[$key]->price; $totalPrice += ($value * $products[$key]->price); ?></td> </tr>
توسط حلقه foreachمقادیر موجود در آرایه $_SESSION["cart"] vرو واکشی می کنه و شماره خانه آرایه را در متغیر $keyمیریزه و مقادیر آرایه رادر داخل متغیر $valueمیریزه