我正在尝试使用这种方法:
public function setMessage(string $message){
$this->message = $message;
}
然后我得到这个错误:
可捕获的致命错误:传递给 notifier::setMessage() 的参数 1 必须是字符串的实例,给定的字符串
显然 PHP 被解释string
为类名。是否有类似的解决方案来做出这种声明?
我正在尝试使用这种方法:
public function setMessage(string $message){
$this->message = $message;
}
然后我得到这个错误:
可捕获的致命错误:传递给 notifier::setMessage() 的参数 1 必须是字符串的实例,给定的字符串
显然 PHP 被解释string
为类名。是否有类似的解决方案来做出这种声明?
PHP 是一种松散类型的语言,它并不真正关心类型并且无论如何都会猜测。您只能在函数声明中将变量限制为类,因此删除string
一切都会好起来的。:)
如果您真的想确定它是一个字符串,请使用gettype()或将变量转换为字符串。
注意(来自 PHP.net 上的 type-juggline):
除了将变量转换为字符串之外,还可以将变量括在双引号中。
$foo = 10; // $foo is an integer
$str = "$foo"; // $str is a string
$fst = (string) $foo; // $fst is also a string