人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

wordpress3.6で予約プラグイン(MTS Simple Booking)の設定が一通り終わり管理画面内の「予約システム」→「予約カレンダー」(wp-admin/admin.php?page=simple-booking)を開くと以下のエラーになります。
何か対処法等ありますでしょうか?
Fatal error: Call-time pass-by-reference has been removed in /var/www/vhosts/*******/wp-content/plugins/mts-simple-booking-c/mtssb-calendar-admin.php on line 374

●質問者: kaji0245
●カテゴリ:ウェブ制作
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● rouge_2008
●100ポイント ベストアンサー

次のページでエラーの原因と修正方法が解説されていました。

・「Fatal error: Call-time pass-by-reference has been removed」の対処
http://dogmap.jp/2013/07/25/call-time-pass-by-reference-has-been-removed/

エラーの原因

PHP 5.4 では、Call-time pass-by-reference (関数呼び出し時の強制参照渡し) 機能が削除されました。
ちなみに今までは php.ini で「allow_call_time_pass_reference」を ON にすれば ( デフォルトで ON です )、この機能が使えていました。
ただし、以下の記述のように将来的に廃止されると宣言されていた機能です。

関数のコール時に引数を強制的に参照で渡す機能の有効/無効を設定 します。この機能は過去のものであり、将来のバージョンの PHP/Zendではサポートされない可能性があります。 推奨される方法は、関数宣言時に参照渡しとするべき引数を指定す る方法です。将来のバージョンでの動作を保障するために、このオ プションをoffとし、スクリプトがこの状態で正しく動作することを 確認することが推奨されます。 (この機能を使用する度に警告が発生し、引数は参照ではなく値で渡 されます。)

関数コール時に参照で引数を渡すことは、コードの明解さを損なうために 廃止されています。関数は、引数が参照渡しであると宣言されて いない場合でも、文書化されていない方法で、その引数を修正できます。 副作用を回避するためには、どの引数を参照渡しとするかを関数宣言でのみ 指定すると良いでしょう。



MTS Simple Bookingの場合は、次の手順で修正できます。

1.エラーになっている374行目の関数に渡している引き数「&$reserved」の先頭の「&」を消去して次のようにします。

$adjustment = $this->_retrieve_adjustment($reserved);

2.423行目の「$abooking」を次のように「&$abooking」に変更して、関数に渡される引数が参照渡しである事を明示します。

private function _retrieve_adjustment(&$abooking) {

※動作のすべてを確認してはいませんが、このプラグインで参照渡しになっているのは上記1箇所のみでしたので、後はおそらく問題なく動作すると思います。


kaji0245さんのコメント
ありがとうございます、大変助かりました<(_ _)>
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ