PHP类方法将参数视为对象,而不是字符串/动态解释参数数据类型

PHP类方法将参数视为对象,而不是字符串/动态解释参数数据类型,php,object,php-5.2,interpreted-language,loose-typing,Php,Object,Php 5.2,Interpreted Language,Loose Typing,今天我发现了一些新东西 我有一个PHP类,包含典型的成员、私有、公共和受保护的方法 其中一种方法是: protected function processThis($dataString) { $dataStringJson = json_decode($dataString); } 这发出了一个警告: json_decode()希望参数1是字符串,对象在xxx行的…/File.php中给出 等等,PHP不是松散类型和动态解释的吗?当然是这样,但是有些函数可以更好地提醒人们他们正在做一

今天我发现了一些新东西

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

其中一种方法是:

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

}
这发出了一个警告:

json_decode()希望参数1是字符串,对象在xxx行的…/File.php中给出


等等,PHP不是松散类型和动态解释的吗?

当然是这样,但是有些函数可以更好地提醒人们他们正在做一些奇怪的事情。您还将收到
$f=“1”的警告;阵列移位($f)

如果您希望
json\u decode
正常工作,那么转换为字符串就足够简单了:

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

您的对象中是否有一个_toString()方法…是的。。。?这并不意味着它没有类型,也不意味着任何东西都能神奇地与其他任何东西协同工作。