我在前幾天看到,在if語句中分配值不是一個好主意。 說實話,我實際上使用了很多,例如PHP - 在if語句中分配值
if(isset($_POST) && $post = $_POST) {
print_r($post)
}
知道爲什麼,是不是最佳的?
我在前幾天看到,在if語句中分配值不是一個好主意。 說實話,我實際上使用了很多,例如PHP - 在if語句中分配值
if(isset($_POST) && $post = $_POST) {
print_r($post)
}
知道爲什麼,是不是最佳的?
並非不重要,因爲忘記賦值和平等運算符是不同的常見的新手錯誤,因此很容易導致混淆或難以檢測到的錯誤。
的可讀性你的代碼比任何微的優化
因爲它不是最優的,而是關於標準,慣例,條件需要比較而不是分配。
不要造成混亂,Noobs可能會坐幾個小時調試問題!
你可以迷惑讀者,如果你不小心輸錯$post == $_POST
到$post = $_POST
更重要。 一般來說它並沒有真正提高可讀性在你的代碼... 此外它往往是沒有必要用「如果」
好了,獨自一人,分配在邏輯運算符並不壞檢查分配:
if ($id = $_GET['id']) {
或
while($row = mysql_fetch_assoc($res)) {
我們很經常使用。
雖然它仍然存在可讀性故障或混合=
和==
操作員的危險。
但是在一個語句中混合邏輯和賦值操作符是不好的。這被稱爲混淆和perl只寫風格,使得閱讀這段代碼更加困難。
所以,最好寫爲
if(isset($_POST)) {
$post = $_POST;
print_r($post);
}
雖然這特定的語句是相當無意義。
$ _POST總是設置在任何合理的環境中,並將其分配給另一個變量,這些變量在大多數時間不是必需的
這被稱爲不良做法。 ;) – Savageman 2010-07-12 09:42:48