2014-01-29 42 views
1

我想這樣它打印出在我的購物車顯示的$i值:

Order item 1 
Order item 2 
etc.. 

因爲我的索引從0開始的,我不希望它說訂單項目0

我試過

$cartoutput .= " <tr><td width='20%'> Order Item ". $i+1." </td> 

但這不起作用。

+1

如果將字符串正確引用到末尾'$ cartoutput。=「訂單項目」,那麼這將工作得很好。 $ i + 1。「」;'它是如何失敗的? –

+0

或者,從1而不是0開始「$ i」。什麼是設置和增加'$ i'的循環代碼? –

+0

$我從0開始。謝謝! – user3150191

回答

0

有幾個問題。這樣做

$cartoutput .= "text". $i+1."text"; 
  1. 因爲有1.之間沒有分隔,PHP需要一個浮點數,就像1.234 ...和1.後,因爲沒有運營商提供了一個錯誤(.是小數點)在文本之前。

  2. +是添加數字,.是字符串連接操作符:因爲它們具有相同的優先級,它們的結合是左到右,有1.之間的空間,

PHP會做

(("text" . $i) + 1) . "text" 

返回(0 + 1) . "text",即"1text"(因爲"text123"被評估爲0,如果$i是123)

最好爲了安全起見,是爲了讓PHP通過插入括號做$i1之間的加成:

$cartoutput .= "text" . ($i+1) . "text"; 

即你的情況

$cartoutput .= " <tr><td width='20%'> Order Item " . ($i+1) . " </td> "; 
0

只使用一個簡單if條件

if($i > 0) 
$cartoutput .= " <tr><td width='20%'> Order Item ". $i+1." </td> 

但你卻用$i+1所以如果連你0-based指數開始就應該呼應Order item 1

0

那是什麼輸出?

請嘗試以下操作;

$j = $i + 1; 
$cartoutput .= '<tr><td width="20%"> Order Item ' . $j . '</td></tr>'; 
1

添加括號的總和:

$cartoutput .= " <tr><td width='20%'> Order Item ". ($i+1) . " </td> ";