현재 위치: > 최신 기사 목록> PHP 치명적인 오류 해결 : 비 객체 오류 및 솔루션에서 멤버 함수로 전화하십시오.

PHP 치명적인 오류 해결 : 비 객체 오류 및 솔루션에서 멤버 함수로 전화하십시오.

M66 2025-06-17

PHP 치명적인 오류 해결 : 비 객체 오류에서 멤버 함수로 호출하십시오.

PHP 개발 과정에서, 우리는 종종 다양한 오류와 예외가 발생합니다. 가장 일반적인 오류는 다음과 같습니다. "치명적인 오류 : 비 객체의 멤버 기능 호출"입니다. 이 오류는 일반적으로 비 객체에서 메소드를 호출하려고 할 때 발생합니다. 이 기사에서는이 오류의 원인, 공통 솔루션 및 이러한 유형의 오류를 효과적으로 디버깅하는 방법을 소개합니다.

오류의 예

간단한 코드 예제를 통해이 오류의 생성을 먼저 이해해 봅시다.

클래스 myclass {
    공개 기능 myMethod () {
        에코 "안녕하세요, 이것이 내 방법입니다!";
    }
}

$ myObject = null;
$ myObject-> myMethod (); // 치명적인 오류가 여기에서 트리거됩니다

위의 예에서는 클래스 myclass를 정의하고 메소드 MyMethod가 해당 클래스에서 정의됩니다. 다음으로, 우리는 변수 $ myObject를 null로 설정하고 메소드를 myMethod라고 부릅니다. $ myObject는 유효한 객체가 아니기 때문에 메소드를 호출 할 때 "치명적인 오류 : 비 객체에서 멤버 함수로 호출"오류가 트리거됩니다.

해결책

이 문제를 해결하려면 메소드를 호출하기 전에 대상 객체가 올바르게 인스턴스화되도록해야합니다. 일반적으로 사용되는 몇 가지 솔루션은 다음과 같습니다.

방법 1 : 객체가 비어 있는지 확인하십시오

if ($ myObject! = null) {
    $ myObject-> myMethod ();
}

간단한 널 체크를 사용하면 객체가 인스턴스화되었는지 확인하고 무효 일 때 메소드를 호출하지 않도록 할 수 있습니다.

방법 2 : ISSET 기능을 사용하여 개체를 판단합니다.

if (isset ($ myObject)) {
    $ myObject-> myMethod ();
}

ISSET 함수는 객체가 설정되어 있는지 여부를 확인합니다. 이 메소드를 사용하여 메소드를 호출하기 전에 객체가 유효한 지 확인하십시오.

방법 3 : 빈 함수를 사용하여 개체를 판단합니다.

if (! empty ($ myObject)) {
    $ myObject-> myMethod ();
}

빈 함수는 물체가 비어 있는지 확인할 수 있습니다. 이 방법을 사용하면 객체가 비어있을 때 메소드 호출을 피할 수도 있습니다.

객체가 올바르게 인스턴스화되어 있는지 확인하십시오

위의 방법 외에도 가장 간단한 솔루션은 메소드를 호출하기 전에 객체가 올바르게 인스턴스화되도록하는 것입니다.

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

메소드를 호출하기 전에 객체를 인스턴스화함으로써 객체가 유효한 객체인지 확인하여 오류와 같은 발생을 피할 수 있습니다.

요약

"치명적인 오류 : 객체가 아닌 객실에서 멤버 함수로 호출"오류는 일반적으로 오브젝트를 인스턴스화하지 않는 메소드를 호출하여 발생합니다. 이 문제를 해결하기 위해, 우리는 객체가 비어 있는지, ISSET 또는 빈 함수를 사용하여 객체가 비어 있는지 확인하고 메소드를 호출하기 전에 객체가 올바르게 인스턴스화되는지 확인하여 판단 할 수 있습니다. 또한 유사한 오류가 발생하면 적시에 디버깅하고 문제를 해결하는 것이 매우 중요합니다.