PHP7可以对非静态方式的方法进行静态形式的调用?

PHP版本:7.4

我有个类:

<?php
namespace App\Util;

class Test
{
    public function test()
    {
        echo 78906;
    }
}

然后我在控制器调用:

 public function ddd()
    {
        Test::test();
    }

上面代码正常输出78906,我试了加ini_set(‘error_reporting’, E_ALL); ini_set(‘error_reporting’, E_STRICT); declare(strict_types=1);还是正常运行。如何设置使他报错??我在php5.6环境这些设置是有效的。

而且看了一篇文章:codingdict.com/article/21475
以静态的方式调用非静态方法,不再支持。
为什么我的一直正常运行

ini_set('display_errors','On');
error_reporting(E_ALL);

加上面两句就报错了,配置问题

附言 1  ·  1年前

加上两句就报错了,配置问题
ini_set('display_errors','On');
error_reporting(E_ALL);

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 13

会有通知,但能运行成功

PHP Deprecated: Non-static method App\Util\Test::test() should not be called statically in

1年前 评论
bluememory (楼主) 1年前

我的7.18.1都直接报异常了

1年前 评论
bluememory (楼主) 1年前
bluememory (楼主) 1年前
renxiaotu (作者) 1年前
bluememory (楼主) 1年前
renxiaotu (作者) 1年前
aab

3v4l.org/IEhpJ 可以看看这个

1年前 评论
bluememory (楼主) 1年前
aab (作者) 1年前
bluememory (楼主) 1年前
<?php
namespace App\Util;

class Test
{
    public function test()
    {
        echo 78906;
    }

    // 静态代理
    public static function __callStatic($name, $arguments)
    {
        return (new static())->{$name}(...$arguments);
    }
}  
1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!