>  기사  >  백엔드 개발  >  PHP 치명적인 오류 해결: 객체가 아닌 오류에서 멤버 함수 호출

PHP 치명적인 오류 해결: 객체가 아닌 오류에서 멤버 함수 호출

PHPz
PHPz원래의
2023-08-27 08:43:501663검색

解决PHP Fatal error: Call to a member function on a non-object错误

PHP 치명적인 오류에 대한 해결 방법: 객체가 아닌 오류에서 멤버 함수 호출

PHP 프로그래밍 과정에서 우리는 종종 다양한 오류에 직면합니다. 그 중 하나는 "치명적인 오류: 개체가 아닌 멤버 함수 호출"입니다. 이 오류는 일반적으로 객체가 아닌 멤버 함수를 호출하여 프로그램이 중단되었음을 의미합니다. 이 문서에서는 이 오류의 원인과 해결 방법을 설명하고 몇 가지 실제 코드 예제를 제공합니다.

이 오류는 일반적으로 멤버 함수를 호출하려고 할 때 발생하지만 호출되는 객체는 실제로 객체가 아닙니다. 예를 들어, 다음 코드는 이 오류를 발생시킵니다.

class MyClass {
    public function myMethod() {
        echo "Hello, World!";
    }
}

$myObject = null;
$myObject->myMethod();

위 코드에서는 myMethod라는 멤버 함수를 포함하는 MyClass라는 클래스를 정의합니다. 그러나 이 클래스를 인스턴스화하기 전에 $myObject를 null에 할당합니다. 따라서 myMethod를 호출할 때 $myObject는 객체가 아니라 null 값입니다. 이로 인해 PHP는 "치명적인 오류: 개체가 아닌 멤버 함수 호출" 오류를 발생시킵니다.

이 오류에 대한 해결책은 간단합니다. 멤버 함수를 호출하기 전에 개체를 인스턴스화했는지 확인하면 됩니다. 위 코드를 다음과 같이 수정하세요.

class MyClass {
    public function myMethod() {
        echo "Hello, World!";
    }
}

$myObject = new MyClass();
$myObject->myMethod();

이 수정된 코드에서는 myMethod를 호출하기 전에 new 키워드를 사용하여 MyClass 개체를 인스턴스화합니다. 이런 방식으로 $myObject는 올바른 객체가 되고 myMethod는 오류 없이 성공적으로 호출될 수 있습니다.

이 오류를 일으키는 또 다른 일반적인 상황은 잘못된 변수 이름을 사용하는 것입니다. 예를 들어 다음 코드를 생각해 보세요.

class MyClass {
    public function myMethod() {
        echo "Hello, World!";
    }
}

$myObject = new MyClass();
$myObject->myMethod();

코드의 문제는 변수 이름을 올바른 $myClass 대신 $myObject로 썼다는 것입니다. 따라서 myMethod를 호출하면 PHP는 올바른 개체를 찾을 수 없으며 "치명적인 오류: 개체가 아닌 멤버 함수 호출"이라는 오류를 보고합니다.

이 오류를 해결하려면 올바른 변수 이름을 사용하여 개체를 참조해야 합니다. 위 코드를 다음과 같이 수정하세요.

class MyClass {
    public function myMethod() {
        echo "Hello, World!";
    }
}

$myClass = new MyClass();
$myClass->myMethod();

이 수정된 코드에서는 변수 이름을 $myObject에서 올바른 $myClass로 변경합니다. 이런 방식으로 myMethod를 성공적으로 호출할 수 있습니다.

일반적으로 "치명적인 오류: 개체가 아닌 멤버 함수 호출" 오류를 해결하는 열쇠는 참조할 멤버 함수 이름을 호출하기 전에 올바른 개체가 인스턴스화되었고 올바른 변수가 사용되었는지 확인하는 것입니다. 개체에. 이러한 모범 사례를 따르면 이 오류를 효과적으로 방지하고 PHP 코드가 제대로 작동하도록 할 수 있습니다.

이 기사에 제공된 코드 예제가 "치명적인 오류: 비객체에서 멤버 함수 호출" 오류를 해결하고 PHP 프로그래밍 기술을 향상하는 데 도움이 되기를 바랍니다. 궁금한 점이 있거나 추가 도움이 필요하면 언제든지 문의해 주세요.

위 내용은 PHP 치명적인 오류 해결: 객체가 아닌 오류에서 멤버 함수 호출의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.