2016-11-23 47 views
-2

我一直在使用一些代碼示例在PHP中創建某種形式的處理腳本,並且已經看到了下面的 - 或similar-不止一次:

$protocol = $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://"; 

如果我只看過一次我會認爲這是一個錯誤,但我試圖學習的腳本是由有經驗的開發人員編寫的。

爲什麼將變量名稱聲明/分配給自己是必要的還是有用的?

+0

https://davidwalsh.name/php-shorthand-if-else-ternary-operators –

+5

這雙重分配不作任何意義。在我看來,像全球搜索留下的人工製品,並取代運行。即使它旨在爲任何有意義的目的服務,那也是一種可怕的風格,因爲我們現在都可以看到它混淆並引發問題。 – arkascha

+2

@MasivuyeCokile OP處理最初的雙重任務,而不是三元操作。 – arkascha

回答

-2

表單$ a = $ b = 0;用於一次將相同的值分配給多個變量。

+0

...這是可怕的:) –

+1

@shivam我明白多重任務 - 問題問爲什麼給同一個變量名賦值兩次。 – chuffstix

-1

例如,這(怪異)啞代碼:

$arr = array('banana', 'kiwi', 'apple', 'lemon'); 

$count = $originalCount = count($arr); 

($i=0; $i < $someOtherNumber; $i++){ 
    //some logic 
    $arr[] = itemAddFunction(); //adds stuff 
    $count++; 
} 

//more things to add or subtract of $count 

echo 'total items '.$count; 
echo 'original amount of items '.$originalCount; 
+0

我不確定你在這裏展示的是什麼 - 你已經爲兩個不同的變量名稱分配了相同的值。你能解釋一下嗎? – chuffstix

+0

一個你不改變,一個你改變,最後你可以比較兩者。但是因爲它們的啓動方式都是相同的,所以'$ count = $ originalCount = count($ arr);'而不是'$ count = count($ arr);'''originalCount = count($ arr)'' – Sitethief

+0

再次,我想你誤解了這個問題 - 我理解多個賦值,問題是詢問是否有任何理由將相同的值賦給* same *變量名兩次。 – chuffstix

相關問題