看來這是一個例子,當想知道是否有可能創建新的操作時出現最多。我個人認爲?=會很方便。
由於創造新的運營商將涉及創建自己的PHP版本,並且可以不爲他人非常有用的,如果你決定要打包你的代碼,你可以很容易地而不是創建一個函數來模擬相同的效果。
/**
* Global function to simplify the process of
* checking to see if a value equates to true
* and setting it to a new value if not.
*
* @param mixed $var the original variable to
* check and see if it equates to true/false
* @param mixed $default the default value to
* replace the variable if it equates to false
*
* @return mixed returns the variable for
* either further processing or assignment.
*/
function _d(&$var, $default) {
return $var = $var ?: $default;
}
然後,您可以調用功能,根據需要分配給另一個變量,甚至巢他們爲需要分配默認值下的變量的層次結構。
_d($variable, 'default value');
// $variable = $variable ?: 'default value';
$variable1 = _d($variable, 'default value') . 's';
// $variable1 = ($variable = $variable ?: 'default value') . 's';
_d($variable, _d($variable1, 'default value'));
// $variable = $variable ?: ($variable1 = $variable1 ?: 'default value');
編輯:
作爲一個側面說明,功能上也將指派即使尚未確定它的默認值的變量。
您可以創建一個類似的函數,或者將上面的函數修改爲以下函數,如果您希望只更新該變量(如果未定義的話)。
return $var = isset($var) ? $var : $default;}
我敢肯定你必須釀造自己的PHP版本做到這一點。 – GWW 2011-06-14 17:45:21
提醒,只有你可以運行代碼,這依賴於這種自定義功能。你通常不會贏得任何東西,但是可能會有一些角色,也可能是一些煩人的消費者;)聯繫到php-internals郵件列表。也許這對於php核心來說是一件好事。 – KingCrunch 2011-06-14 17:46:41
真棒是有什麼地方我們可以打開一個「請願書」,使其引起注意? – dynamic 2011-06-14 17:50:30