ホームページ >バックエンド開発 >PHPチュートリアル >Call-Time Pass-by-Reference が PHP で非推奨になったのはなぜですか?それを修正するにはどうすればよいですか?
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; }
追加の考慮事項:
以上がCall-Time Pass-by-Reference が PHP で非推奨になったのはなぜですか?それを修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。