PHP 错误:静态调用非静态方法
错误消息“严格标准:非静态方法 Page::getInstanceByName() PHP 中不应静态调用”表示您正在尝试调用非静态方法,就好像它是static.
了解静态方法
静态方法是无需实例化类对象即可调用的类方法。它们是使用 static 关键字声明的。静态方法通常用于实用程序函数或访问类属性。
修复错误
在提供的代码中,Page 类中的 getInstanceByName() 方法是未声明为静态。要修复错误,请将 static 关键字添加到方法声明中:
public static function getInstanceByName($name='') { // Method implementation... }
进行此更改后,您应该能够调用 getInstanceByName() 而不会收到错误。
可测试性注意事项
虽然静态方法很方便,但重要的是要注意它们会使单元测试变得更加困难。这是因为静态方法不与类的特定实例绑定,因此不能被模拟或容易地单独测试。
在构造函数中查询
它也是值得一提的是,Page 类构造函数包含过多的查询,这可能会影响性能和代码可读性。考虑重构代码以将查询移至单独的方法或通过依赖项注入注入必要的数据。
以上是如何解决 PHP 错误:'静态调用非静态方法”?的详细内容。更多信息请关注PHP中文网其他相关文章!