0

好的,所以我有一个如下所示的脚本:

$i = 0;

foreach($_SESSION['cart'] as $id => $quantity) {

     $photo + ++$i =$pwinty->addPhoto($order, $_SESSION['size'][$id], $row['source'], $quantity, "ShrinkToFit");
}

基本上我有一个变量i,如果可以的话0,每次将一个新变量$photo添加到“列表”时,它都会增加。所以基本上以上需要变成:

$photo1 = ...
$photo2 = ...
$photo3 = ...

现在就像现在的$photo线路一样。当脚本运行时,我收到以下错误:

Parse error: syntax error, unexpected '=' ...

我猜我需要将这条线连接在一起,但我不确定。提前谢谢你的帮助。

4

4 回答 4

0

试试这个,

$i=1;
$ph='photo';
foreach($_SESSION['cart'] as $id => $quantity) {
   $photo=$ph.$i;// will give 'photo1' at first
   // $photo1=...
   $$photo =$pwinty->addPhoto($order, $_SESSION['size'][$id], $row['source'], $quantity, "ShrinkToFit");
   echo $$photo; // echo $photo1
   $i++;
}

您可以create array轻松访问每个变量,例如,

$photo=array();
$i=0;
foreach($_SESSION['cart'] as $id => $quantity) {
     $photo['photo'][$i++]=$pwinty->addPhoto($order, $_SESSION['size'][$id], $row['source'], $quantity, "ShrinkToFit");
}
print_r($photo);
于 2013-11-07T06:17:27.977 回答
0

您真正尝试做的事情是如何完成的,但请注意这是非常糟糕的做法:

$i = 0;
foreach($_SESSION['cart'] as $id => $quantity) {
    ${'photo'.++$i} = $pwinty->addPhoto($order, $_SESSION['size'][$id], $row['source'], $quantity, "ShrinkToFit");
}
// how to output a photo:
if(isset($photo0)){
    echo $photo0;
}

这是不好的做法,因为它会产生很多变量并且效率低得多。你应该使用数组。

应该是这样的:

$photo = array();
$i = 0;
foreach($_SESSION['cart'] as $id => $quantity) {
    $photo[++$i] = $pwinty->addPhoto($order, $_SESSION['size'][$id], $row['source'], $quantity, "ShrinkToFit");
}
// for checking the content of the $photo array:
echo '<pre>';
print_r($photo);
echo '</pre>';
// example of how to access data from the array, where 0 is the first thing that got added, if anything was added:
if(isset($photo[0])){
    echo $photo[0];
}
// traverse the entire array:
foreach($photo AS $id => $p){
    echo 'id: '.$id.', photo: '.$p;
}
于 2013-11-07T06:19:45.457 回答
-1

这 :

$photo + ++$i =

在赋值的左侧是非法的,因为它没有意义。

删除++$i并移至下一行

更新:

尝试执行此操作:

<?php $photo + ++$i = 3; ?>

你会得到同样的语法错误。

解析错误:语法错误,第 2 行 C:\PHP\test.php 中的意外 '='

于 2013-11-07T06:17:49.800 回答
-2

它应该是这样的:

$i = 0;

foreach($_SESSION['cart'] as $id => $quantity) {

     $photo = $pwinty->addPhoto($order, $_SESSION['size'][$id], $row['source'], $quantity, "ShrinkToFit");
$i++;
}
于 2013-11-07T06:16:19.370 回答