gpt4 book ai didi

php - 错误 :should not be called statically, 假设 $this 来自不兼容的上下文。只在我的机器上

转载 作者:可可西里 更新时间:2023-10-31 22:11:16 25 4
gpt4 key购买 nike

我的团队成员在 Controller 中静态编写了模型函数调用,例如:

$data = ModelName::functionName($param);

虽然它应该被动态调用,例如:

$model = new Model();
$data = $model->functionName($param);

大多数情况下,所有调用都是静态进行的。该代码在服务器和除我之外的本地计算机上运行。如果不重写庞大的代码库,静态调用太多无法修复。

我总是通过 composer 更新我的项目。我的 php 版本是 5.4。

有人可能知道这是关于什么的吗?

最佳答案

您可能在运行 PHP 时报告了 E_STRICT 错误。尝试将其关闭并查看是否解决了问题 - 例如关闭 E_STRICT 错误的错误报告。 See this post on SO :

<?php
error_reporting(E_ALL ^ E_STRICT);

但我不得不说,混合对象风格和静态风格的调用是个坏主意。函数调用应该明确表明函数是在静态或对象上下文中调用的,并据此采取行动。即使它有点难(对所有文件进行 grep 并更改错误的调用有多难?),我还是建议先修复您的代码。

我还建议阅读有关 static keyword 的内容在面向对象编程中 - 区分静态方法调用和对象方法调用是有原因的,不是“让事情变得更简单”的原因,而更多的是 “让事情更清楚”,我会说。

关于php - 错误 :should not be called statically, 假设 $this 来自不兼容的上下文。只在我的机器上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25846310/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com