我有一個功能,如何在函數的參數中使用php三元運算符?
abc(string $x, bool $y)
我如何使用三元運算函數調用表達式裏面?我試過,但給了
意外T_RETURN錯誤
代碼:
abc('Hello', return (1==1)?true:false);
我有一個功能,如何在函數的參數中使用php三元運算符?
abc(string $x, bool $y)
我如何使用三元運算函數調用表達式裏面?我試過,但給了
意外T_RETURN錯誤
代碼:
abc('Hello', return (1==1)?true:false);
在像PHP命令式語言,return
只是用來從一個函數返回。我們稱之爲return
聲明之類的東西,因爲它們是一個在函數體中聲明的東西。另一方面,具有數值或評價爲數值的東西,如數字2或表達式2 + 5稱爲表達式。
你能想到的return
,以此來表達(即"hello, world!"
)轉換成行動(即return "hello,world!"
)
你可以這樣想名詞性從句表達(即「石頭」)和像行動一樣的陳述(例如,「把磐石給你的老闆」)。
在這種情況下,PHP與大多數命令式語言一樣,期望您只使用表達式作爲函數的參數。
想一想 - 將動作作爲參數傳遞給函數或將兩個動作加在一起意味着什麼?
在你有的代碼中,你想調用abc
,第一個參數設置爲'Hello'
,第二個設置爲表達式(1 == 1)?true:false
的值。在這種情況下,你不需要return語句,因爲(1==1)?true:false
已經是一個表達式,所以你可以這樣做:
abc('Hello', (1==1)?true:false);
你不需要return
那裏。嘗試更換以上
abc('Hello', (1==1)?true:false);
試試這個
abc('Hello', $y = (1==1)?true:false);
function abc($x, $y)
{
echo $x." ".$y;
}
輸出線:
Hello 1
由於$y
已經被認爲是可以不需要三元運算符在布爾你的來電。三元運算符使用布爾值在兩個其他值之間進行選擇;如果其他值僅爲true
和false
那麼該語句是多餘的。你可以簡單地寫:
abc('Hello', 1==1);
該錯誤提到了return語句,而不是三元運算符。 – mario
使用此'abc('Hello',(1 == 1?true:false));' – dhidy
刪除'return'並且它將工作 – Blu