エラーになった箇所のソースを見ないとなんとも言えません。
ま、正常に動いてたものがバージョンを変えただけでエラーになったのならばバージョンによるエラーと言えますが。
質問2の具体的な方法とは、一体何のことでしょうか?
具体的に教えてください。
http://blog.sarabande.jp/post/24003654486
このサイトで説明されているものを見た感じ、バージョンによるエラーのようです。
しかし過去バージョンのことも考え、変数配列指定するよう心がけたほうがいいと思います。参考書が丁寧じゃないですね。
×array_shift([1,2,3,4,5]);
○$a = [1,2,3,4,5];
array_shift($a);
ちなみに今後こういうエラー文が出てきたら、
・google翻訳してみる
・エラー文そのもので検索してみる
これでエラーの原因がわかることが多いのでやってみてください(今回は「Strict Standards: Only variables should be passed by reference in」で検索したらごろごろ出てきましたので)
▽3
●
うぃんど ●200ポイント ベストアンサー |
質問1は 牛乳先生(tukihatu)さんから回答を得ていますので、
質問2だけ記述します。
OSバージョンの記述がないので、
質問履歴を辿って見つけたWindows7だと仮定して話を進めます。
ちなみに、Localhostは自分自身という意味で、
Windows以外でも使われるためOSの判別には使えないのです…。
以下、本題
(1)新バージョンの入手
Windows版は下記にあります。最新は5.5系の5.5.5ですが、
テキストに合わせて5.4系の5.4.20で良いでしょう。
http://windows.php.net/download/#php-5.4
apache2.2系ならVC9 x86 Thread Safe版のZipをダウンロードします。
(2)apacheサービスの停止
Apacheのアイコンから出来るようになってると思いますが、
タスクマネージャのサービスでapacheを探して停止してもかまいません。
(3)旧環境の退避
仮にc:\phpであったならフォルダ名をc:\php53といった具合に変えます。
windowsフォルダのphp.iniファイルをc:\php53にコピーしてバックアップとします。
(4)ファイルコピー
以前がc:\phpであったなら、新規にc:\phpを作り、
Zipの中身を丸ごとそのままc:\phpに入れてしまいます。
フォルダ内の php.ini-production を コピーして名前を php.ini にします。
開発者向けのphp.ini-developmentもあるのですが、
レンタルサーバーの環境に近づけるため今回はproductionを選択しています。
(4)php.iniの編集で環境設定
MySQLを使っているので、下記の行を探して先頭の;を消します。
;extension=php_mysql.dll
;extension=php_mysqli.dll
;extension=php_pdo_mysql.dll
マルチバイト対応も必要でしょうから、下記の行を探して先頭の;を消します。
;extension=php_mbstring.dll
学習用ということなら下記の行を探してOffをOnに書き換えて、
エラーメッセージが標準出力(ブラウザなら画面)に出るようにします。
display_errors = Off
書き直しが済んだらwindowsフォルダにコピーします。
古いものは(3)でバックアップしたはずですから上書きします。
(5)apacheサービス起動
apacheサービスの起動だけでかまいませんが、
Windowsを再起動しちゃってもかまいません。
(6)バージョンチェック
すでにご存じかもしれませんが、phpinfo() だけのファイルを用意して、
apache上でphpが動いているかをチェックします。
<?php echo phpinfo();
(7)不具合が起こったら…。
バックアップした古いphp.iniと新しいphp.iniを見比べて違う部分を合わせます。
文字化け関係は[mbstring]以降を見比べてみてください。