我有PHP的三元運營商的問題,因爲PHP版本5.3,你可以較新的風格PHP三元操作已經令人失望的結果與isset功能
// Older version
$route = isset($test) ? $test : 'test is NOT set';
// Newer version as of 5.3
$route = isset($test) ?: 'test is NOT set';
現在與一個更短的版本替換速記三元運算符如果未設置$test
,則爲新版本。它工作正常。但是,如果因爲isset()
方法而設置,則返回true
或1
而不是該值。
是否必須使用較舊的較長方法才能使$route
等於$test
的值而不是布爾值1
?
你可以使用'$路線= $測試:?測試未設置';'來代替。 – FtDRbwLXw6 2011-12-20 03:16:29
如果你不介意壓制錯誤消息,你仍然可以使用速記。這不是'正確'或'漂亮'的方式,但仍然有效 - $ route = @ $ test?:'test is not set'; – 2013-09-24 20:53:34