function myCheck($in)
{ return isset($in); }
$var1='Something';
$var2='$var1';
$var3='$varNonExitant';
我試圖才達到是使用myCheck
來評價這樣的內容是否存在等:「間接」 isset()函數
myCheck($var2) return true;
myCheck($var3) return false;
function myCheck($in)
{ return isset($in); }
$var1='Something';
$var2='$var1';
$var3='$varNonExitant';
我試圖才達到是使用myCheck
來評價這樣的內容是否存在等:「間接」 isset()函數
myCheck($var2) return true;
myCheck($var3) return false;
當你cyall myCheck($ abc),設置$ abc = 123時,它會得到myCheck(123)。這不是isset的任何有效參數。
你必須給函數的字符串與變量名:
function isset_global($variable_name)
{
return isset($GLOBALS[$variable_name]);
}
當然,我也想知道,爲什麼要做到這一點,但只要你選中一個全局變量它回答了這個問題。
這將始終失敗,因爲除'$ in'之外,函數內部不存在變量。 – deceze
這是一個壞主意。由於'$$ in'指的是一個在函數範圍中不存在的變量,因此您總會得到false。 –
注意編輯。你可以使用全局。 –
isset()是不是一個真正的函數:它是一種語言構造。因此,它可以做一些常規功能無法提供的魔法,比如用不存在的變量提供。
總結:你不能用自定義函數複製它。
編輯:
由於DaveRandom下面pointed out in a comment,所有你能做的是通過檢查接近舉例來說,如果一個變量isset:
function variable_isset(&$variable = NULL) {
return isset($variable);
}
這種方法有兩個缺點,但:
這工作通過通過uns通過引用變量,從而在被調用時創建它。由於它是NULL,它仍然沒有設置。
它會觸發未定義的變量注意,如果該變量不存在,則破壞正常處理可選變量的整個概念。
很可能這不應該需要。所以問題仍然是爲什麼你不能在第一時間使用isset
,這將更需要給你更好的指導。
有一個PHP功能。它叫做isset! :-) –
@NicholasKing - 他可能意識到這一點,因爲他正在爲它編寫封裝。 –
你「真的」想做什麼? –