我有一個函數,它A
類型的參數(在PHP 5):PHP 5類型提示(通過類型A的對象的陣列到功能)
function f1(A a){...}
我也有我解碼的陣列從$_POST['val']
值,並將其發送給其他一些功能f2
:
$array1 = json_decode(stripslashes($_POST['val']));
f2($array1);
現在,我想打電話給f1
每個數組元素的f2
內:
function f2(array $a){
foreach($a as $element){
f1($element);
}
但我得到一個錯誤:
Argument 1 passed to f1() must be an instance of A, instance of stdClass given
當我把裏面if($element instanceof A)
我f2
得到FALSE
,但我可以propertly對$element
的A
的方法調用。
如何'告訴'f1
該類型是否正確?
使用print_r
在array1
(name
和sourceId
在A
):
Array
(
[0] => Array
(
[name] => connect
[sourceId] => 12
)
)
'stdClass'不是'A'。它也沒有方法。你不會從'json_decode'中得到'A'類型的東西。在將數據傳遞給'f1'之前,您需要從數據中構建您的'A'對象。 – deceze 2013-02-15 20:46:10