다른 PHP 파일에서 몇 가지 다른 클래스로 작업하고 있습니다. 어떤 이유로, 처음으로 함수를 호출하면 제대로 작동하지만 두 번째 호출은 오류가 발생합니다. 기존 개체의 "개체가 아닌 개체의 함수 호출"
이
은class something{
private $db;
function myfunction($sql){
$db = new db();
$results = $db->select("sql query using $sql");
return(empty($results[0]['name'])?0:1);
}
}
는 "DB가"나는 문제가에있다 믿지 않는 등 데이터베이스 쿼리를 처리하기 위해 사용하고 다른 클래스 내 "뭔가"클래스 (공개보기 위해 편집)입니다 첫 번째 호출 이후이 파일이 올바르게 작동합니다.
다음은 테스트를 위해 사용하는 코드입니다. 이것은 "무언가"클래스와 다른 PHP 파일에 있습니다.
$something = new something();
echo($something->myfunction('string'));
echo($something->myfunction('string2'));
앞에서 언급했듯이 첫 번째 호출 ("string")은 올바르게 작동하지만 두 번째 호출 ("string2")은 실패합니다. 이것은 내가 얻는 오류입니다.
Call to a member function select() on a non-object
첫 번째 호출이 올바르게 작동 한 이후로 select 함수 (또는 db 클래스)에 문제가 있다고 생각하지 않습니다. 문제는 "myfunction"에 $ db를 선언하는 것과 관련이 있다고 생각합니다. 그러나 이유는 확실하지 않습니다.
이것은 적어도 나를위한 bizzar입니다. 두 번째 결과물 만 단독으로 사용해 보았습니까? – samayo
'$ something-> myfunction' 또는'$ db-> select'로 에러가 발생합니까? – silkfire
예. 두 번째 호출은 첫 번째 호출이 주석 처리 된 경우 올바르게 작동합니다. 즉, 함수를 두 번 이상 호출하면 오류가 발생합니다. 그리고 오류가 "myfunction"내에 있다고 생각합니다. "db"를 선언하는 방식 때문이라고 생각하지만 해결 방법을 모르겠습니다. – Justin