Call-time Pass-by-Reference 지원 중단됨: 이해 및 해결
PHP의 경고 "Call-time pass-by-reference가 변경되었습니다. 더 이상 사용되지 않음"은 함수 호출 중에 참조로 변수를 전달하기 위해 & 기호의 오래된 사용법을 나타냅니다. 이 관행은 수년간 권장되지 않았으며 PHP 8에서는 공식적으로 더 이상 사용되지 않습니다.
지원 중단 원인:
이전 PHP 버전에서는 인수로 전달된 객체를 수정하려면 & 기호가 필요했습니다. 그러나 최신 PHP 버전은 기본적으로 값으로 객체 전달을 지원하지만 마치 참조로 전달된 것처럼 동작합니다. 이는 함수 내의 개체를 수정하면 원래 개체도 수정된다는 의미입니다.
해결 방법:
지원 중단 경고를 해결하고 향후 PHP 버전과의 코드 호환성을 보장하려면 다음을 제거하세요. 변수가 참조로 전달되는 코드 줄의 & 기호.
제공된 코드에서 & 기호는 다음과 같이 제거될 수 있습니다. 다음:
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!