object
和array
真的是唯一允许类型提示的类型吗?
另外,他们在文档中指出标准类型string
和int
也不能是类型提示。
这让我更加好奇。仅允许两种类型提示和删除标准提示的原因是什么?
提前致谢!
答案 0 :(得分:8)
PHP 5.3目前仅支持array
和ClassName
类型提示
即将推出的PHP 5.4版本也将支持callable
类型提示。
目前不支持标量类型提示的原因是它们在弱类型语言中的行为不清楚:
1
和'1'
之间的差异? - >反对PHP精神'hallo'
会为0
类型提示int
- >直观这就是为什么标量typehint实现从PHP 5.4中退出的原因 - 在这个问题上没有达成共识。
答案 1 :(得分:0)
是的,只有数组和对象是类型提示允许的类型。
http://www.php.net/manual/en/language.oop5.typehinting.php
见最后一行:
类型提示只能是对象和数组(自PHP 5.1以来)类型。不支持使用int和string的传统类型提示。