类型提示及其限制背后的原因

时间:2011-10-20 14:07:52

标签: php types type-hinting

objectarray真的是唯一允许类型提示的类型吗?

另外,他们在文档中指出标准类型stringint也不能是类型提示。

这让我更加好奇。仅允许两种类型提示和删除标准提示的原因是什么?

提前致谢!

2 个答案:

答案 0 :(得分:8)

PHP 5.3目前仅支持arrayClassName类型提示 即将推出的PHP 5.4版本也将支持callable类型提示。

目前不支持标量类型提示的原因是它们在弱类型语言中的行为不清楚:

  • 是否应该抛出错误,即使它只是1'1'之间的差异? - >反对PHP精神
  • 是否应该应用普通的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的传统类型提示。