我有一个关于php中静态函数的问题.

假设我有一门课

class test {
    public function sayHi() {
        echo 'hi';
    }
}

如果我做test::sayHi();次,它就能正常工作,没有问题.

class test {
    public static function sayHi() {
        echo 'hi';
    }
}

test::sayHi();也行.

头等舱和二等舱有什么不同?

静电功能有什么特别之处?

推荐答案

在第一个类中,sayHi()实际上是一个实例方法,您可以将其作为一个静态方法调用,但您可以不使用它,因为sayHi()从不引用$this.

静态函数与类相关联,而不是类的实例.因此,$this在静态上下文中不可用($this不指向任何对象).

Php相关问答推荐

未找到laravel cascadeOnEdit

我需要多个SELECT语句的结果(使用由php ECHO创建的表中显示的Limit(X)

基于不用于变体的产品属性隐藏多个WooCommerce发货方式

将文件添加到存档,而不重建存档

Codeigniter 3中SMTP.office 365.com的截断问题

服务器迁移后无法上载文件-可能存在权限问题

限制某些产品只能在WooCommerce的特定邮政编码/邮政编码范围内发货

PHP -流加密启用服务器切断字节

dyld[45923]:未加载库:/usr/local/opt/libavif/lib/libavif.15dylib

将自定义字段添加到管理产品中 WooCommerce 3.2+ 中的快速编辑

有没有办法像引用枚举一样引用注册表中的对象?

对 WooCommerce 购物车和 checkout 中显示的运输方式进行排序

laravel Eloquent 模型的问题

奇怪的 preg_match_all() 行为

如何处理 Null 上的 array_shift() ?

如何从 URL 核心 PHP 中的 API 获取 JSON?

将自定义保存金额移至 Woocommerce 简单产品中的价格以下

根据页面的最后修订日期设置 MediaWiki 内部链接的样式

根据WooCommerce中选定的变体重量更改输入数量步值

仅允许减少 WooCommerce 中已完成订单的库存数量