在 PHP 中声明严格与 Laravel 等框架结合使用是否安全?

Har*_*rry 2 php laravel

我正在考虑摆脱 PHP 中的所有自动类型转换。但是当我申请 declare(strict_types=1) 时,我担心这可能会与我的框架 Laravel 发生冲突。所以我的问题是:即使 Laravel 没有将其所有 PHP 文件声明为严格,在我的所有 PHP 文件中使用 declare(strict_types=1) 仍然安全吗?

Oen*_*n44 7

使用declare(strict_types=1)将仅影响带有函数声明的文件,而不影响定义。例如:

foo.php

<?php
    declare(strict_types=1);
    function parseInt(int $value) {}
Run Code Online (Sandbox Code Playgroud)

栏.php

<?php
    require 'foo.php';
    parseInt('123');
Run Code Online (Sandbox Code Playgroud)

如果你执行bar.php - 它不会抛出错误。如果您parseInt('123')foo.php 中使用并执行该文件,则会抛出错误。

所以只要你不接触 Laravel 源代码,就不会发生什么坏事。