※ 本文為 layzer 轉寄自 ptt.cc 更新時間: 2013-06-13 09:08:10
看板 PHP
作者 標題 Re: [請益] echo 資料的問題?
時間 Sun Jun 9 23:47:37 2013
※ 引述《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/ )
PHP Template Engine | Smarty
Smarty is a template engine for PHP. ...
Smarty is a template engine for PHP. ...
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)
推 :我習慣用 "{$var} xxx" 的用法,而且測試後發現處理速度比1F 06/09 23:53
→ :較快,程式碼也比較容易閱讀。
→ :較快,程式碼也比較容易閱讀。
→ :耶!? 原本以為"{$var} xxx"的陣列key不能用雙引號3F 06/10 00:01
→ :結果剛剛去試了一下是可以的 = 3=
→ :"{$arr["key"]}" 是可行的
→ :所以結論是:小弟要改習慣了XDDD
→ :結果剛剛去試了一下是可以的 = 3=
→ :"{$arr["key"]}" 是可行的
→ :所以結論是:小弟要改習慣了XDDD
→ :我的習慣跟原po一樣 @@7F 06/10 12:54
--
※ 看板: layzer 文章推薦值: 0 目前人氣: 0 累積人氣: 403
回列表(←)
分享