标签: php string type-hinting
我正在尝试使用此方法:
public function setMessage(string $message){ $this->message = $message; }
然后我收到此错误:
捕获致命错误:参数1传递给notifier :: setMessage() 必须是字符串的实例,给定的字符串
显然PHP正在将string解释为类名。是否有类似声明的解决方案?
string
答案 0 :(得分:5)
只能在对象上使用Typehinting,但数组除外。
来自Manual:
类型提示不能与标量类型(如int或string)一起使用。也不允许特征。
答案 1 :(得分:1)
PHP是一种松散类型的语言,它并不真正关心类型,无论如何都会猜测。您只能在函数声明中将变量限制为类,因此删除string,一切都会好的。 :)
如果你真的想确定它是一个字符串,请将gettype()或cast变量用于字符串。
注意(来自PHP.net上的type-juggline):
不是将变量转换为字符串,而是也可以 用双引号括起变量。
$foo = 10; // $foo is an integer $str = "$foo"; // $str is a string $fst = (string) $foo; // $fst is also a string