> 백엔드 개발 > PHP 튜토리얼 > PHP 오류 해결: 객체가 아닌 메서드를 호출하려고 합니다.

PHP 오류 해결: 객체가 아닌 메서드를 호출하려고 합니다.

WBOY
풀어 주다: 2023-08-25 18:18:02
원래의
1281명이 탐색했습니다.

PHP 오류 해결: 객체가 아닌 메서드를 호출하려고 합니다.

PHP 오류 해결 방법: 객체가 아닌 메서드를 호출하려고 합니다

PHP를 사용하여 개발 프로세스를 진행하는 동안 종종 오류 메시지가 표시됩니다. 그 중 하나는 "객체가 아닌 메서드를 호출하려고 합니다"입니다. 이 오류는 메소드를 호출하려고 할 때 사용된 객체가 합법적인 객체가 아니라는 것을 의미합니다. 이 문서에서는 이 문제를 해결하는 데 도움이 되는 몇 가지 일반적인 원인과 해결 방법을 소개합니다.

  1. 객체가 올바르게 초기화되었는지 확인하세요

일반적인 이유는 메서드를 호출하기 전에 객체를 올바르게 초기화하지 않았기 때문입니다. 예를 들어, 클래스를 인스턴스화한 후 객체의 인스턴스를 생성하기 위해 "new" 키워드를 사용하는 것을 잊어버렸습니다. 따라서 객체의 메소드를 호출하면 오류가 보고됩니다.

다음은 샘플 코드입니다.

class Example{
    public function test(){
        echo "调用成功!";
    }
}

$example = Example;  // 错误的初始化方式,忘记了关键字“new”
$example->test();    // 报错:尝试调用非对象的方法
로그인 후 복사

이 문제를 해결하려면 객체를 인스턴스화할 때 "new" 키워드를 추가하면 됩니다. 복구된 코드는 다음과 같습니다.

class Example{
    public function test(){
        echo "调用成功!";
    }
}

$example = new Example;  // 正确的初始化方式
$example->test();        // 正常输出:调用成功!
로그인 후 복사
  1. 객체가 null인지 확인하세요

또 다른 일반적인 이유는 메서드를 호출하기 전에 객체를 null로 만들지 않기 때문입니다. null인 개체에 대해 메서드를 호출하려고 하면 오류가 보고됩니다.

다음은 샘플 코드입니다.

class Example{
    public function test(){
        echo "调用成功!";
    }
}

$example = null;
$example->test();  // 报错:尝试调用非对象的方法
로그인 후 복사

이 문제를 해결하려면 메서드를 호출하기 전에 null 조건만 추가하면 됩니다. 수정된 코드는 다음과 같습니다.

class Example{
    public function test(){
        echo "调用成功!";
    }
}

$example = null;
if($example != null){
    $example->test();    // 不会报错,因为已经进行了判空处理
}
로그인 후 복사
  1. 객체의 유형이 올바른지 확인하세요.

또 다른 상황은 메소드를 호출하려고 할 때 사용된 객체가 예상한 유형이 아닌 경우입니다. 이 경우 일반적으로 이 오류를 방지하기 위해 유형 검사를 사용합니다.

다음은 샘플 코드입니다.

class Example{
    public function test(){
        echo "调用成功!";
    }
}

$str = "Hello World";
$str->test();  // 报错:尝试调用非对象的方法
로그인 후 복사

이 예에서는 실제로 개체의 메서드를 호출하려고 하지만 대신 문자열을 사용합니다. 이 문제를 해결하기 위해 유형 검사를 사용하여 사용 중인 객체가 올바른 유형인지 확인할 수 있습니다.

이 문제를 해결하려면 is_object() 함수를 사용하여 유형 검사를 수행하면 됩니다. 복구된 코드는 다음과 같습니다.

class Example{
    public function test(){
        echo "调用成功!";
    }
}

$str = "Hello World";
if(is_object($str)){
    $str->test();    // 不会报错,因为已经进行了类型检查
}
로그인 후 복사

요약:

PHP 개발 과정에서 "객체가 아닌 메서드를 호출하는 중"이라는 오류가 발생하면 먼저 객체가 올바르게 초기화되었는지, 객체가 올바르게 초기화되었는지 확인할 수 있습니다. null이며 올바른 유형입니다. 특정 상황에 따라 해당 솔루션을 채택하면 이 문제를 효과적으로 해결할 수 있습니다. 이 기사가 PHP 오류 보고의 일반적인 문제를 해결하고 개발 효율성을 높이는 데 도움이 되기를 바랍니다.

위 내용은 PHP 오류 해결: 객체가 아닌 메서드를 호출하려고 합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿