2013-03-14 40 views
-2

今天我发现了一些新东西。PHP类方法将参数视为对象而不是字符串/动态解释参数数据类型

我有一个典型的成员,私人,公共和受保护方法的PHP类。

方法之一是这样的:

protected function processThis($dataString) 
{ 
    $dataStringJson = json_decode($dataString); 

} 

这吐出警告:

json_decode()预计参数1是串,对象中给出.../File.php在线xxx

等一下,不是PHP松散类型和动态解释?

+1

你有一个__toString()方法,在你的对象 – Anigel 2013-03-14 17:19:21

+0

...是...?这并不意味着它没有类型,或者所有东西都可以神奇地与其他所有东西一起使用。 – deceze 2013-03-14 17:20:33

回答

1

当然可以,但是有一些功能可以更好地提醒人们他们正在做些奇怪的事情。您还会收到$f = "1"; array_shift($f);的警告。

如果你想json_decode只是工作,然后浇注到一个字符串是很容易的:

protected function processThis($dataString) 
{ 
    $dataStringJson = json_decode(''.$dataString); 
} 
相关问题