看板 PHP 關於我們 聯絡資訊
※ 引述《joinbee (二老林)》之銘言: : echo "<td><a : href='dispmessage.php?name=".$row_result["name"]."'>$row_result["name"]</a> : </td>"; : 想請問一下上面這一行要怎麼寫才對,我對"跟'要怎麼分開一直搞不太清楚,請 : 各位高手指教一下?對了,錯誤訊息是 : Parse error: syntax error, unexpected '"', expecting identifier (T_STRING) or : variable (T_VARIABLE) or number (T_NUM_STRING) in C:\xampp\htdocs\stock.php : on line 41 小弟小小的講一下個人心得 假設想處理變數和字串的話: 先不管單引號(')和雙引號(")的效能差異 (效能有興趣看這篇:http://goo.gl/TjvxZ ) 小弟個人習慣是HTML屬性什麼的,都用雙引號(") JavaScript比較少寫,不過也都是用雙引號(") PHP程式裡,遇到字串通通都會用單引號('),變數會用串接(.) 所以程式碼通常都會像這樣: (just舉例而已,假設輸入的變數已處理過了) e.g.: $sql = 'SELECT ' . $column . ' FROM ' . $table; $html = '<a href="' . $link . '"></a>'; $script = ' <script> var str = "' . $php_var . '"; alert(str); </script> '; (程式碼上色好累,後面懶得用了 = 3=) 當然最大的好處是不會跟HTML或是Javascript的雙引號衝突 另外的好處就是變數直接串不用多想。 不用考慮什麼陣列,或是物件忘了加大括號的問題等。 e.g.: $str = "{$arr['key']}"; $str = "{$obj->property}"; 壞處顯而易見,要多打很多有的沒有的符號。 當然這單純只是提供個人習慣做參考而已。 或者是說可以反過來操作: PHP端全都用雙引號,遇到變數全都加大括號,可能就很像Smarty那樣吧 ( Smarty: http://www.smarty.net/ ) e.g.: $str = "Today is {$date}."; 覺得這樣做比較好的原因是: 有個統一化的做法,對於未來要看/改程式碼是有幫助的。 以上的寫法是建立在:如果要寫一個純粹只有PHP程式碼的時候。 (MVC 的 M & C) 所以上面的程式碼都沒有PHP tag (<?php ?>) 那回到最開始,因為原po程式碼有echo,所以應該是View 這樣的話會小弟只會在有PHP變數的地方用echo即可 也就是echo裡不會出現常數的字串 e.g.: 原始碼: <?php echo '<a href="' . $link . '"></a>'; ?> 小弟會改寫成: <a href="<?php echo $link; ?>"></a> 如此就可以完全避免PHP程式的單引號與雙引號的內鬥害Programmer鬥雞眼了XD 當然能避免的只有PHP的部分,HTML和JavaScript還是會有相同的問題啦 (如果PHP變數輸出有誤 當然還是要去debug PHP程式碼的部分了) 以上建議僅供參考,如果有更好的寫法可以一起來討論 :) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.126.68.4 ※ 編輯: tails32100 來自: 59.126.68.4 (06/09 23:48)
kerash:我習慣用 "{$var} xxx" 的用法,而且測試後發現處理速度比 06/09 23:53
kerash:較快,程式碼也比較容易閱讀。 06/09 23:53
tails32100:耶!? 原本以為"{$var} xxx"的陣列key不能用雙引號 06/10 00:01
tails32100:結果剛剛去試了一下是可以的 = 3= 06/10 00:02
tails32100:"{$arr["key"]}" 是可行的 06/10 00:03
tails32100:所以結論是:小弟要改習慣了XDDD 06/10 00:04
Bambe:我的習慣跟原po一樣 @@ 06/10 12:54