PHP에서 Call-Time Pass-by-Reference 지원 중단
제공된 코드는 "Call-time pass-by-reference" 경고를 트리거합니다. 더 이상 사용되지 않습니다." 이 경고는 변수 참조 앞에 & 연산자로 표시되는 호출 시간 통과 참조 사용이 더 이상 PHP에서 지원되지 않음을 나타냅니다.
Call-Time Pass-by-Reference
이전 버전의 PHP에서는 호출 시 참조에 의한 전달을 통해 값에 의한 전달 함수를 사용할 때 참조에 의한 전달 동작을 시뮬레이션할 수 있었습니다. 여기에는 호출 시 변수 참조 앞에 &를 추가하는 작업이 포함됩니다. 예:
not_modified(&$x);
이를 통해 함수 내에서 $x가 참조하는 변수를 수정할 수 있습니다.
지원 중단
Call-time pass-by-reference는 PHP의 후속 버전에서 더 이상 사용되지 않으므로 사용해서는 안 됩니다. 사용된. 대신 변수는 &를 사용하여 명시적으로 참조로 전달되어야 합니다. 예:
modified($x);
객체 및 참조별 전달
이전 버전의 PHP에서는 객체가 필요합니다. 함수 내에서 수정될 때 참조에 의한 전달. 그러나 객체는 항상 기본적으로 참조로 전달되므로 최신 PHP 버전에서는 더 이상 필요하지 않습니다. 따라서 제공된 코드에서 &$this를 사용하는 것은 중복됩니다.
해결 방법
경고를 해결하려면 제공된 코드에서 &의 모든 인스턴스를 제거하세요. 업데이트된 코드는 다음과 같습니다.
function XML() { $this->parser = xml_parser_create(); xml_parser_set_option($this->parser, XML_OPTION_CASE_FOLDING, false); xml_set_object($this->parser, $this); xml_set_element_handler($this->parser, 'open', 'close'); xml_set_character_data_handler($this->parser, 'data'); } function destruct() { xml_parser_free($this->parser); } function parse($data) { $this->document = array(); $this->stack = array(); $this->parent = &$this->document; return xml_parse($this->parser, $data, true) ? $this->document : NULL; }
위 내용은 PHP에서 Call-Time Pass-by-Reference가 더 이상 사용되지 않는 이유는 무엇이며 경고를 어떻게 해결할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!