我正在考虑取消PHP中的所有自动类型转换。但当我应用declare(strict_types=1(时,我担心这可能会与我的框架Laravel发生冲突。所以我的问题是:在我的所有PHP文件中使用declare(strict_types=1(是否仍然安全,即使Laravel没有严格声明其所有PHP文件?
使用declare(strict_types=1)
只会影响带有函数声明的文件,而不会影响定义。例如:
foo.php
<?php
declare(strict_types=1);
function parseInt(int $value) {}
bar.php
<?php
require 'foo.php';
parseInt('123');
如果执行bar.php,它不会抛出错误。如果在foo.php中使用parseInt('123')
并执行该文件,那么它将抛出一个错误。
所以,只要你不接触Laravel的源代码,就不会有什么不好的事情发生。