プログラミング言語や環境設定を中心としたパソコン関連の技術メモです。
主にシステム開発中に調べたことをメモしています。TIPS的な位置付けで、気が向いたときにちまちま更新していきます。
PHP、「Only variables should be passed by reference」とかいうエラー?警告?が出た。
結論から書くと、該当箇所の値を一旦、変数に入れてやればエラーが消えました。

それでは詳細を書いていきます。

PHPで作ったWebシステムを動かしていたところ
パッと見は正常に動いているのですが
エラーログが徐々に肥大化していましてね。

「何でじゃ(--?」と思ったのが今回のきっかけです。

そこでエラーログの中身を見たところ、以下のようなログが大量に出ていました。

PHP Strict Standards: Only variables should be passed by reference in /hoge/hoge.php on line 28

該当箇所の処理は以下の通りです。

$val = hoge_func(array_shift($tmp));

別に変なことはしてないんだけどな(--ゞ

教えて!Google先生!

ふむふむ(--)

hoge_funcの引数は参照渡しを要求しているのに呼び出し側で値渡しにしているのが原因らしいです。
なるほど!分からん!

いや、分かりますけどね。

まぁ、とにかく解決方法は

一旦、変数に入れてやること

みたいです。

ということで

$val = hoge_func(array_shift($tmp));



$a = array_shift($tmp);
$val = hoge_func($a);

にしたら、無事にエラーが出なくなりました。

そんな感じ\(--)/
スポンサーリンク
 
このエントリーをはてなブックマークに追加 

category:● PHP  thema:システム開発 - genre:コンピュータ  Posted by ササキマコト 

  関連記事