我刚刚遇到了一个问题,我无法解释为什么会这样.

我有一个只接受字符串类型参数的函数.

Example class

class A {

    public function __construct() {
        $data = new \Illuminate\Support\Collection(); 
        // getType($data) => object
        $this->make($data);
    }

    private function make(string $str): string {
        // getType($str) => string
        ...
    }
}

Question:为什么我可以传递一个集合,即使只允许使用字符串?

推荐答案

为了避免这种行为,您可以在PHP类的顶部添加:declare(strict_types=1);

Laravel相关问答推荐

Laravel 10 - 没有 $append 属性的Eloquent 的热切加载

如何在 Laravel 中获取特定月份的最后一个日期?

如何为 CMP 横幅安装谷歌同意脚本?

仅针对字母的 laravel 验证规则

如何在 vue 模板中引用 laravel csrf 字段

如何在 Laravel Passport 中获取刷新令牌?

如何在 laravel 5.2 中显示 500 内部服务器错误页面?

如何处理 Laravel 的 SMTP 驱动程序中的自签名 TLS 证书?

Laravel 中未加密的 cookie

Laravel 5 - Php artisan语法错误

将 Laravel Socialite 与 API 一起使用?

如何在 AWS Elastic Beanstalk 上设置和使用 Laravel 调度?

如何在本地 Laravel Homestead 站点上获取 https 证书

Laravel 5.2 身份验证不起作用

使用 Laravel 将两个模型合并到一个分页查询中,并带有Eager加载的关系

如何调试 Laravel 框架?

在 Laravel 的数据透视表中添加 id 列有什么好处?

向 Laravel 重定向添加一个锚点

Laravel s3 多桶

如何在 Laravel 5.3 中获取当前的语言环境