[PHP-users 26219] PHP4.4.0 should be (returned | assigned) by reference に関して
kotaropan @ yahoo.co.jp
kotaropan @ yahoo.co.jp
2005年 7月 20日 (水) 16:09:49 JST
康太朗です。質問お願いします。
この質問に先立ち、以下のスレッドおよび返信内容を参考にさせてもらいました。
たいへん参考になりました。ありがとうございました。
[PHP-users 26140] PHP 4.4.0 Release Announcement
テストサーバーにて、PHP4.4.0で既存のスクリプトの動作確認をしています。
いつくかのスレッドでも出ている内容ですが、
以下のワーニングに関する質問です。
Only variables should be assigned by reference
Only variable references should be returned by reference
質問を簡潔にするために、仮想的な関数で話をしたいと思います。
function & getData(要求条件) {
if ( 新規作成要求であった ) return new privateClass;
if ( DBなどから該当データがあった ) return $data;
if ( 該当データが0件であった ) return 0;
if ( 要求条件に誤りがあった ) return false;
}
呼び出し元では、以下の方法で行い、結果を受け取っています。
$result = getData(...);
$result =& getData(...);
# このような書き方をよくしています。
# 上記のワーニングが出たことで、
# 基本に振り返り、自分の知識を見直したいと思っています。
この関数において、0またはfalseが返ってきた場合、
参照しかしてはならないというのは、十分に理解できるのですが、
その他にも、注意点や文法的な問題はあるでしょうか?
# 潜在的な問題点もご指摘いただけると有難いと思います。
また、開発時においては、error_reporting(E_ALL)を設定しています。
# 一部の場合、(PHP_VERSION < 5 ? E_ALL : E_ALL | E_STRICT)を使用
# E_STRICTの問題は、今回除外でお願いします。
上記のような関数を使用する場合、
ワーニングを抑制する方法は、
error_reporting()、@演算子を利用する以外という条件で、
スクリプトの書き方であるんでしょうか?
# 正しい書き方と表現した方が良いかもしれません
以上の質問、よろしくお願いします。
------------------------------
おいしいパンが焼けたらと思っている、
将来パン屋さんになりたい康太朗でした kotaropan @ yahoo.co.jp
__________________________________
Save the earth
http://pr.mail.yahoo.co.jp/ondanka/
PHP-users メーリングリストの案内