2017-12-27 2 views
-2

PHP 4.4를 사용하는 이전 서버에서 실행중인 클라이언트에서이 이전 스크립트를 받았습니다. 우리는 PHP 5.6을 사용하여이 서버를 새로운 서버에 배치했으며 더 이상 작동하지 않을 것입니다.PHP 치명적 오류 : null (PHP 4.4에서 PHP 5.6)의 getAttribute() 멤버 함수 호출

스크립트는 양식을 XML 파일에 저장하고 XML에서 양식으로 정보를 다시 검색합니다. 문제는 더 이상 검색하지 않는다는 것입니다. 이 오류가 발생합니다 :

PHP Fatal error: Call to a member function getAttribute() on null

다음은 오류 코드 부분입니다.

아이디어를 다시 얻으려면 무엇을 변경해야합니까? 감사!

+0

, 당신은 라인이 오류를 던지고 모든 참조 할당 – Phil

+0

을 제거 할 수 있습니까?'$ nodeToCDef->의 getAttribute ("이름")'또는'$ thisLinkNode->의 getAttribute ("이름") ' ? – Phil

+0

구문 분석에 실패 할 경우 DOM에 액세스하려고 시도하는 것을 막을 수있는 방법은 없습니다. – Phil

답변

1

PHP 5 이후 new는 참조를 자동으로 반환하므로 this 문맥에서 = &을 사용하면 더 이상 사용되지 않으며 PHP 5.3 이상에서는 E_DEPRECATED 메시지가 생성되고 이전 버전에서는 E_STRICT 메시지가 생성됩니다. PHP 7.0부터 구문 적으로 유효하지 않습니다. 기술적으로 PHP 5에서 객체 변수는 리소스와 마찬가지로 실제 객체 데이터를 가리키는 포인터이기 때문에 이러한 객체 참조는 이전에 사용한 것과 같은 의미의 "참조"(별칭)가 아닙니다.

우선 들어

http://php.net/manual/en/language.references.whatdo.php

+0

'E_STRICT'수준 오류로 인해 'null'이 될까요? 또한, OP는 'new'를 사용하는 곳이 어디입니까? – Phil

관련 문제