在PHP中声明strict可以安全地与Laravel等框架结合使用吗



我正在考虑取消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的源代码,就不会有什么不好的事情发生。

最新更新