PHP では、非変数値を参照によって渡すときに厳密な標準モードで警告が発行されることがあります。この一般的な例は、array_shift() 関数を使用する場合です。
「厳格な標準: 変数のみが参照によって渡される必要があります」という警告は、array_shift() のときに表示されます。 ) は、引数として渡される非変数値とともに使用されます。例:
$instance = new MyClass(); $el = array_shift($instance->find(...)); // Warning
対照的に、array_shift() が配列を含む変数で呼び出された場合、警告は生成されません:
function get_arr() { return [1, 2]; } $el = array_shift(get_arr()); // No warning
array_shift() は配列値を返す関数であるため、この警告は混乱を招く可能性があります。ただし、厳密モードでは、PHP は array_shift() の戻り値を非変数と見なします。
厳密モードで警告を解決するには、次の 2 つのオプションがあります。
例:
// Modify Method Signature function get_arr() { return [1, 2]; } $instance = new MyClass(); $el = array_shift($instance->get_arr()); // Use Intermediate Variable $el = array_shift($instance->get_arr() ?: []);
以上がarray_shift() を使用するときに PHP が「厳密な標準: 変数のみ参照渡しする必要がある」を発行するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。