PHPコーディング

PHPで参照渡し

2013年01月21日
PHPの関数で参照渡しするには、
//関数
function func(&$val){
  ・
  ・
}
//呼び出し元
$callval = "abc";
func($callval);
とします。

関数の引数に【&】を付けると、参照引渡しというお約束です。
そして呼び足し元の変数には【&】は付きません。

知ってはいたのですが、ついうっかり呼び出し元の変数に【&】を付けてしまっていた箇所があったことがあります。関数をコピーして、呼び出し元へペースト、【&】を取り忘れていたのです。

販売しているツールのソースは、かなり前に修正したのですが、本当に全て直っているか、新たに取り忘れていないか、少し心配になってきました。

取り忘れていると、サーバーの設定によってはワーニングが出るのです。
エラーと違いワーニングなので、動作には問題ありません。開発者には見えて、ユーザーには見えない設定が望ましいです。
メジャーなサーバーではワーニングが出ない設定になっているので、問題はありません。
今までは、ワーニングが出る場合、ユーザー様の【php.ini】に【allow_call_time_pass_reference=off】を付け加えて貰っていました。

これをソースのほうから設定するように変更しようとと思い、【allow_call_time_pass_reference】につてい調べてみみました。
すると、バージョン5.4.0で削除されていました。

動いているバージョンは5.4.0より低いところも多々ありますが、バージョンアップされたときエラーが出るようになってしまう可能性もあるということです。使わないほうがいいでしょう。

そもそも消し忘れ、付けるつもりがないのに付いているので、リリース前にチェックできるのが一番です。

自分のサーバーで、今度は【allow_call_time_pass_reference=on】に設定し、チェックする方針にしました。
コメントの書き込み
コメント
2018年07月
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
先月
来月
カテゴリ
検索
関連サイト
プロフィール
【ネットネーム】
みゅー

キャラクター by ツカエルサイト


【趣味】
・プログラミング
・写真
・楽器演奏
・手芸
・日曜大工
・家の中の不便を便利に
・考える
・自然科学
・猫と戯れる
・ジグソーパズル

【仕事】
・派遣社員でSE・PGやっていました。次の良い仕事がみつからないので、ビジネスへ注力しようと思っています。
・経験言語:VB6、VB.NET、PHP、Perl、JAVA、Oracle、SQLServer、PostgreSQL



【名前】
アン(足)

2014年4月22日生まれ 女の子
あだ名は くノ一
普段は普通にしゃべりますが、興奮すると『ニャ』を連発します

【趣味】
・狩
・ご飯を食べる
・ママのお手伝い

【仕事】
ママのビジネスの看板招き猫
ママの代わりにPC入力
仕事中のママの右腕を温める
ママに心配をかける
いろんな事をしでかしてママを退屈させない

RSSフィード