Fatal error: Call-time pass-by-reference has been removedが出た場合の対処方法

広告-Ad-

そもそもの始まりは、吹替メモ用や購入商品を表示させて、ついでにアフィリエイトで商品一覧が自動生成できるものはないかと思い調べていました。
普段はカエレバヨメレバを使っています。
というより理想はこの形で、記事の最後にこのコードを検索して表示できないものか…という考えから始まったものです。
最初はAmazon系から始まり、他のアフィリエイトに対応しているのもないだろうかと調べたところ、該当するプラグインがいくつかありました。
目を付けたのが、VC Searchでした。

インストールし有効化したところ、以下のエラーが表示されました。

VC_Search_error_php

PHP5.4で動かす際、Fatal error: Call-time pass-by-reference has been removedと表示されるのは、Call-time pass-by-reference(関数呼び出し時の参照渡し)がPHPの機能として削除されてしまっているからのようです。

VC Searchを有効化するための対処方法として、
[php]
// 並べ順の選択肢からパラメータを設定
$v_sort_type=$yahooshoppingapi->yshsort ($v_sort_type,&$v_sort_order);
[/php]

[php]
// 並べ順の選択肢からパラメータを設定
$v_sort_type=$yahooshoppingapi->yshsort ($v_sort_type,$v_sort_order);
[/php]
参照渡しから値渡しにするべく、&$v_sort_orderの「&」を削除するとエラー回避されました。

ミニマムなPHP5.4移行ガイド | Cybozu Inside Out | サイボウズエンジニアのブログ の記事を読んでもう少し根深い気もしないでもないですが、PHP5.4で動かしている以上今後も避けられない感じがします。

2013年7月25日追記

こちらにも同様の記事があったのでご参考までに。やっぱり根が深そうですね。
「Fatal error: Call-time pass-by-reference has been removed」の対処|dogmap.jp

ちなみに、VC Searchは使用しないことにしました。
用途と異なったのが理由ですが、ショッピングサーチなどを構築する場合は有効的に使えるかもしれません。
どちらかというとデータベースに近いので。
理想の形にするのにもう少し時間がかかりそうです。
やはり別サイトを立ち上げた方がいいのかも…と思案中。

現在療養中のためフリーランスを装いながら無職モードで細々生息中。海外ドラマからWebネタ、ゲーム・Apple・iPhone・音声合成・MMDなどの様々なガジェットを、おばちゃん視点で紹介しています。

広告

シェアする

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください