You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

PHP中函数参数为类名形式的含义及检索方法咨询

PHP中函数参数为类名形式的含义及检索方法咨询

嘿,我来帮你把这个问题掰扯清楚!

首先看你贴的这段代码:

public function scopeFilter(Builder $builder, array $filter)
{ /**/ }

里面的Builder $builder这种写法,在PHP里叫做类型提示(Type Hinting),也常被称为类型声明。它的核心作用就是给参数“定规矩”:调用这个scopeFilter方法时,传入的第一个参数必须是Builder类(或者它的子类、实现的接口,如果是接口类型的话)的实例,绝对不能是字符串、数字这种不相关的类型,甚至不能是其他类的对象。

举个实际的例子,你这个方法看起来是Laravel框架里的查询作用域,这里的Builder就是Laravel自带的查询构建器类。用了这个类型提示后,不仅IDE能给你精准的代码补全(比如提示$builder能调用whereorderBy这些方法),PHP在运行时也会自动检查参数类型——要是你传错了类型,直接就会抛出错误,帮你提前排查问题,让代码更严谨。

然后说说怎么谷歌才能搜到相关内容:

  • 用英文搜的话,关键词可以是 PHP function parameter class name type hint,如果结合你的Laravel场景,还能搜 Laravel scope function parameter class type,精准定位框架相关的用法
  • 用中文搜的话,直接用 PHP 函数参数 类名 类型提示 或者 Laravel 查询作用域 参数类名 就好

之前搜不到大概率是没用到“类型提示”这个准确术语,用官方叫法搜,相关的文档、教程、问答一下子就出来啦。

另外补充个小知识点:PHP从5.0版本就支持类和接口的类型提示了,后来慢慢扩展到数组、标量类型(int、string这类),现在PHP 8还支持联合类型、交集类型这些更灵活的写法,都是为了让类型检查更完善。

备注:内容来源于stack exchange,提问作者document text

火山引擎 最新活动