首页 > 后端开发 > php教程 > 如何修复'严格标准:不应静态调用非静态方法”PHP 错误?

如何修复'严格标准:不应静态调用非静态方法”PHP 错误?

DDD
发布: 2024-11-27 05:32:10
原创
963 人浏览过

How to Fix the

解决 PHP 中的“严格标准:不应静态调用非静态方法”错误

错误消息“严格标准:不应静态调用非静态方法”当使用静态调用访问非静态方法时,会发生“静态调用”。为了解决这个错误,我们将修改代码,以确保所有需要静态调用的方法都声明为静态。

在提供的代码中,Page 类中的方法没有声明为静态,而是它们被称为静态的。要解决这个问题,我们需要在方法声明中添加 static 关键字。

修改 Page.php

class Page{
    // ...
    public static function getInstanceByName($name=''){
        // ...
    }
    // ...
}
登录后复制

通过将这些方法设为静态,他们可以使用类名进行访问,如index.php 文件中所示:

// ...
if($page){ // load by name
    $r = Page::getInstanceByName($page);
    if($r && isset($r->id)) $id = $r->id;
}
// ...
登录后复制

其他注意

  • 静态方法和单例模式可能会阻碍单元测试。
  • 构造函数应该主要关注将对象设置为有效状态,而不是执行大量查询。
  • 构造函数不能返回值;它们总是返回 void。

以上是如何修复'严格标准:不应静态调用非静态方法”PHP 错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板