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);

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 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年前 评论

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