在PHP 7中全局启用“strict_types”

我目前正在将我的网站从PHP5迁移到PHP7,而且我已经开始使用添加的严格的打字function。 但是这需要我用下面一行开始所有的文件:

<?php declare(strict_types=1); // All other code here // ... 

所以我想知道,是否有任何方法来启用全局使用像php.ini或apacheconfiguration文件strict_types ,所以我不必每次都写这一行,如果是的话,我怎么能启用这个?

这是故意不可能的,因为在标量类型提示的极长讨论之后采用的实现是这样的: https : //wiki.php.net/rfc/scalar_type_hints_v5

它明确地给出了如何将标量类型检查给任何函数的调用者,而不是其作者,以便:

  • 如果使用标量类型提示编写库,则即使通过非严格模式编写的代码调用函数,也可以保证所请求的参数类型(类型被强制转换)
  • 如果你编写一个库,并希望传统的弱类型,你仍然可以使用类型提示库(因为他们不强迫你执行严格的类型检查)
  • 相反,如果你编写一个库,并且要为你调用的函数进行严格的输入,那么你不必要求你的库的用户也能够严格打字
  • 内置函数与用户定义函数的工作方式相同,现有的代码在默认情况下运行相同
  • 如果你打开严格的打字,你需要改变你的代码,以正确处理它

因此,要告诉PHP哪些文件已经被写入使用严格类型模式,哪些没有; 而做到这一点的方法是使用declare语句。

基本上没有。

因为如果您只需要使用严格模式的库,就会导致不必要的软件包分离。 另外考虑严格/弱类型选项只是在PHP中的额外。