Solution to PHP error: Try to call a non-object method
In the process of using PHP development, we often encounter some error messages, one of which is "try Calling a method of a non-object". This error means that when we try to call a method, the object used is not a legal object. This article will introduce some common causes and solutions to help you solve this problem.
A common reason is that we did not initialize the object correctly before calling the method. For example, after instantiating a class, we forget to use the keyword "new" to create an instance of the object. Therefore, when calling the object's method, an error will be reported.
Here is a sample code:
class Example{ public function test(){ echo "调用成功!"; } } $example = Example; // 错误的初始化方式,忘记了关键字“new” $example->test(); // 报错:尝试调用非对象的方法
Fixing this problem simply requires adding the keyword "new" when instantiating the object. The repaired code is as follows:
class Example{ public function test(){ echo "调用成功!"; } } $example = new Example; // 正确的初始化方式 $example->test(); // 正常输出:调用成功!
Another common reason is that we do not null the object before calling the method deal with. If we try to call a method on an object that is null, an error will be reported.
The following is a sample code:
class Example{ public function test(){ echo "调用成功!"; } } $example = null; $example->test(); // 报错:尝试调用非对象的方法
To fix this problem, you only need to add a null condition before calling the method. The repaired code is as follows:
class Example{ public function test(){ echo "调用成功!"; } } $example = null; if($example != null){ $example->test(); // 不会报错,因为已经进行了判空处理 }
Another situation is that when we try to call a method, the object used is not Not the type we expected. In this case, we usually use type checking to avoid this error.
The following is a sample code:
class Example{ public function test(){ echo "调用成功!"; } } $str = "Hello World"; $str->test(); // 报错:尝试调用非对象的方法
In this example, we actually want to call the method of the object, but we use a string. To solve this problem, we can use type checking to ensure that the object we are using is of the correct type.
To fix this problem simply use the is_object() function to perform type checking. The repaired code is as follows:
class Example{ public function test(){ echo "调用成功!"; } } $str = "Hello World"; if(is_object($str)){ $str->test(); // 不会报错,因为已经进行了类型检查 }
Summary:
During the PHP development process, when we encounter the error "trying to call a non-object method", we can first check whether the object Initialized correctly, null, and of the correct type. Adopting corresponding solutions according to the specific situation can effectively solve this problem. I hope this article can help you solve common problems in PHP error reporting and improve development efficiency.
The above is the detailed content of Solving PHP error: Trying to call a non-object method. For more information, please follow other related articles on the PHP Chinese website!