有沒有什麼辦法可以在PHP中將原始數據類型傳遞給函數參數(或等價地將它存儲到變量中)?通過原始類型我的意思是int
,bool
,double
,string
等將原始數據類型傳遞到函數參數
更具體地說,我願做這樣的事情:
function SomeFunc($DataType, $SomeOtherPara)
{
}
SomeFunc(int, "test1");
SomeFunc(bool, "test2");
一個可能用法可能是:
//! Cast the input parameter into a data type, recursively.
/*!
\param[in] $DataType Data type, e.g. int, double, bool, string.
\param[in] $InputPara Any input parameter.
*/
function TypeJuggleRecursive($DataType, $InputPara)
{
if(is_array($InputPara))
{
// Work on each array element recursively.
$ReturnPara = array();
foreach($InputPara as $Key => $Value)
{
$ReturnPara[$Key] = TypeJuggleRecursive($DataType, $Value);
}
return $ReturnPara;
}
else
{
// Cast to data type.
return ($DataType)$InputPara;
}
}
TypeJuggleRecursive(bool, $_GET);
TypeJuggleRecursive(int, $_POST);
一個明顯的解決方法是使用字符串,即"string"
爲string
,"int"
爲int
等,但這似乎愚蠢。
不是我所知道的。但有趣的問題。我只是傳遞字符串或int(某些標識符可以打開)類型,即使它看起來像「笨蛋」一樣,並不像PHP中常用的數以百萬計的數據類型。 –
我不認爲你可以只使用int,字符串等。我會假設這些是保留關鍵字,但不要在此引用我。即使gettype()函數(我會用這樣的東西),返回字符串格式的類型:http://php.net/manual/en/function.gettype.php – kennypu
gettype只會是有用的,如果他想要將傳入的var作爲其自己的類型進行投射。在這種情況下,他想要傳遞類型來投射AS,而不管$ SomeOtherPara是什麼。 –