我有一个关于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相关问答推荐

获取具有按字段分组的 N 个子项的模型

Laravel eloquent 无法正确获取数据

codeigniter 4 mysql 查询 distinct 或 groupby

使用 ffmpeg 和 PHP 为转换后的视频添加徽标或水印

htaccess 重写 url 以便仅在根目录而不是子目录中删除 php 扩展

由于“Unknown named parameter”,phpunit 测试在转到 php 8.0 后失败

为什么我在创建新项目时会收到​​ laravel 错误?

Docker & Laravel:配置:错误:未满足包要求(oniguruma)

将 POSTMAN 请求转换为 Curl

PHP setcookie“SameSite = Strict”?

Laravel 5.5 ajax 调用 419(未知状态)

PHP:布尔与布尔类型提示

composer :file_put_contents(./composer.json):无法打开流:权限被拒绝

如何使用 PHP 创建错误 404 页面?

使 PhpStorm 停止自动关闭选项卡

Laravel 什么是守卫?

在 Ubuntu 上的 php 5.6 上安装 php-zip

如何在不使用 Firebase 控制台的情况下发送 Firebase 云消息传递通知?

如何为 Laravel 设置文件权限?

Laravel Eloquent,其中字段为 X 或 null