• ベストアンサー

PHP5になったら動かない

サーバレンタル会社の都合でPHP4だったのがPHP5になりました。 特に不都合なく動いてたのですが、今日1個エラーが出ているプログラムを確認しました。 どんどん行を削っていってどうもここがおかしいというところをつきとめたのですが、PHP5についてはまったく知識がない状態だったので何がおかしいのかさっぱりわかりません。 ご教授お願いいたします。 【ソース】 <?php if(!$m){ print $buff3[0]."件中 500位以内にありませんでした。"; } print "<p>&nbsp;</p>"; ?> 【実行結果】 Parse error: syntax error, unexpected '>' in /public_html/hogehoge.php on line 6 if文を削除すると動くので、!$mの記述方法が悪いのかとにらんでいます。 よろしくお願いいたします。

  • umioyo
  • お礼率78% (172/220)
  • PHP
  • 回答数5
  • ありがとう数3

質問者が選んだベストアンサー

  • ベストアンサー
  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.4

たびたびどうも、非互換例を眺めていてふと気づきました。 if(!$m) ですが、もしかして$mはプロパティを何も持たないオブジェクトで 初期化もしてないのではないでしょうか。PHP4ではヌルでしたが PHP5では中身が無くてもヌルではありません。 この結果if(!$m)がPHP4ではfaleだったものがphp5ではtrueになり   print $buff3[0]."件中 500位以内にありませんでした。"; が今までは実行されなかったのに、実行されてしまいます。 この時$buff3[0]の中身が適切でなければエラーとなったのでは..?

umioyo
質問者

お礼

どうもありがとうございます。 今、別の環境で自分の書いたソースをコピペして同じ環境に別ファイルでアップしたら問題なく 件中 500位以内にありませんでした。 と表示されました。 何か違う問題のようです。きちんと確認して再度質問させて頂きます。 お騒がせしました。m(_*_)m

その他の回答 (4)

  • se-nabe
  • ベストアンサー率34% (31/91)
回答No.5

うーん例え$mが定義されていなくて、 ifが通っても、別にエラーは出ないと思うんですよね。。 こうなったら、地味にデバックしか方法はなさそうですね。 2つあるprintを片方ずつコメントアウトして、 エラーが出るか。 それでも出るなら、$mと$buff3をvar_dump して、内容確認。 それでもだめなら、そこのif文だけ取り出して、hoge.php とかにして、表示させましょう。 まさかとは思いますが、$が大文字とかないですよね?

umioyo
質問者

お礼

何か環境とかブラウザのキャッシュとかの問題だったみたいです。 (一応複数のブラウザで動かしてみたんですが。。。) お騒がせしました。

  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.3

「今日1個エラーが出ているプログラムを確認しました。」 の最初のエラーメッセージは何だったのでしょうか? PHP4=>PHP5で、一番大きな影響は、オブジェクト変数の代入文です。 $a = $b; とした場合PHP5では $a =& $b; の意味になります。つまりPHP4の時は、$aと$bは完全に別物 としてメモリー領域が確保されましたが、PHP5では同じメモリー 領域を参照しています。 従ってPHP5で$b->x = "X"; とすると、$a->xも"X"になります。 その他非互換については参照URLをみて下さい。 (私も意味がよくわからないものもありますが)

参考URL:
http://www.php.net/manual/ja/migration5.incompatible.php
umioyo
質問者

補足

最初のエラーもsyntaxerrorで、同じ行でした。 オブジェクト変数の代入文に関しても->clone();で試してみたりしました。 (というかわずか8行の上記ソースでは使う場所ないですけど^^) 関係ないですが、 $buff=$_POST["$buff"]; という文はそのままPHP5になっても使っていいものでしょうか??

  • se-nabe
  • ベストアンサー率34% (31/91)
回答No.2

そうですね、 syntaxなんで、単純な記述ミスが一般的です。 別に見たところ、php5が対応していない所はないと思いますが・・・ 全角スペースとか入ってますか?

umioyo
質問者

補足

一応全角がくさいと思って、テキストエディタで全角のスペースを記号で表示するようにしてみたのですが、見つかりませんでした。

  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.1

「どんどん行を削って」の作業中に、どこかで " とか ' とか . とか { とか }を誤まって削除していませんか? エラーメッセージを見るとそんな気がします。

umioyo
質問者

補足

んー上記のソースを動かした結果をそのまま載せているのですが。。。 PHPではなく他の原因ですかね・・・

関連するQ&A

  • phpのエラー(T_LNUMBER)について

    Parse error: syntax error, unexpected '2' (T_LNUMBER) in /home/celiakhx/public_html/wp-content/plugins/bf-click-counter/bf-click-counter.php on line 168 とwordpressのプラグインがエラーを起こします。 エラー箇所だと思われる168行目は数式のみです 直し方がわかるかたがいらっしゃいましたら、ご教授願います。

    • ベストアンサー
    • PHP
  • PHPのエラー「Unexpected character ...」「syntax error, unexpected ...」について

    PHP Warning: Unexpected character in input: ''' (ASCII=39) state=1 in /home/***/***.php on line 25 PHP Parse error: syntax error, unexpected '<' in /home/***/***.php on line 26 という2行のエラーが表示されました。 まったく明快な答えは探せませんでした。 もしも少しでも手がかりになるような情報がありましたら教えて下さい。 お願いします。

    • 締切済み
    • PHP
  • phpbb3.07pl-1にて、次のエラーが発生しました。

    phpbb3.07pl-1にて、次のエラーが発生しました。 Parse error: syntax error, unexpected '}' in C:\www\users\poonet\public_html\php-bin\phpbb\cache\tpl_prosilver_overall_footer.html.php on line 14 です。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • php 何故、エラー???

    いつもお世話になりありがとうございます。 標記の件。 $subject = "お仕事に関するお問い合わせ"; がエラーになってしまいます。 PHP Syntax Check: Parse error: syntax error, unexpected variable "$subject" in your code on line 2 全体のコードは下記です。 <? php $subject = "お仕事に関するお問い合わせ"; $body = "お見積の件で、連絡をしました。"; ?> <!doctype html > <html > <head > <meta charset =" utf-8"> <title>お問い合わせ</title> </head> <body> <h1><? php echo $subject ?></h1> <p><? php echo $body ?></p> </body > </html > どうして2行目がエラーになるのでしょうか? どうか教えてください。 ご回答のほど宜しくお願い申し上げます。

    • ベストアンサー
    • PHP
  • phpのエラー(T_LNUMBER)について

    Parse error: syntax error, unexpected T_LNUMBER, expecting ',' or ';' in /..../..../result.php on line 202 というエラーが出ます。 このエラーはresult.phpファイルの202行目に「,」もしくは「;」が足りないよという意味を示していると思うのですが、どう足りないのかというところでひっかかっています。 改行してみたりして行数を確認してみると、特定のコードの箇所に対するエラーでした。 以下が該当する202行目のコードです。 if ($p > 1) { echo "<font size=¥"1¥"><a href=¥"$_SERVER[PHP_SELF]?p=$prev1¥"><</a></font>"; } 上記コードのecho "~~~~~の行が202行目です。 これはどこが間違っているのでしょうか? もしくはそもそも違う部分で間違っている可能性があるということなのでしょうか。。。 アドバイスをいただけないでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • phpファイルを開けない(ブラウザにエラー表示)

    こんにちは! PHPを勉強中なのですが、あるphpファイルをブラウザで開こうとすると 以下のように表示が出てしまい、ファイルが開けません。 ------------エラー文------------------------------------------- Parse error: syntax error, unexpected '<' in C:\xampp\htdocs\hello.php on line 128 --------------------------------------------------------------- これは何が原因のエラーなのでしょうか? 有識者の方いらっしゃいましたらご指導宜しくお願い致します。

    • ベストアンサー
    • PHP
  • 携帯、スマートフォンのPHP振り分け

    こんなPHPを書いているのですが どうしてもParse errorが出ます。 解決方法を教えて下さい!! ■エラー内容 Parse error: syntax error, unexpected T_EXIT in /home/sites/heteml/users/web/m/index.php on line 5 ■振り分けPHP <?php $agent = $_SERVER['HTTP_USER_AGENT']; if(preg_match("/^DoCoMo/i", $agent)){ header("Location: ​http://www.hogehoge.com/m/i/index.html");​ exit; }else if(preg_match("/^(J\-PHONE|Vodafone|MOT\-[CV]|SoftBank)/i", $agent)){ header("Location: ​www.hogehoge.com/m/s/index.html");​ exit; }else if(preg_match("/^KDDI\-/i", $agent) || preg_match("/UP\.Browser/i", $agent)){ header("Location: ​www.hogehoge.com/m/e/index.html");​ exit(); }else if(preg_match("iPhoneやスマートフォン用の判定", $agent)){ header("Location: www.hogehoge.com/m/smt/index.html"); exit(); }else{ header("Location: ​www.hogehoge.com/m/pc/index.html");​ exit(); } ?> よろしくお願い致します。

    • ベストアンサー
    • PHP
  • PHPについて

    xamppをインストールしてPHPの学習をしております。 そこで、 PHPについて以下2つの質問があります。 質問1 関数の引数について <?php phpinfo(); ?> は、phpの情報を表示するスクリプトですが、関数の()の中に 引数を書くときは、引数を""で囲む場合と囲まない場合はあるのでしょうか? 質問2 エラーについて ファイル名:client.php <?php print "あなたのIP:"; print getenv("REMOT_ADDR"); print "<BR>" print "あなたのホスト名"; print gethostbyaddr(getenv("REMOTE_ADDR")); ?> 上記スクリプトを作成して、http://localhost/client.phpとブラウザ で実行したところ、 Parse error: syntax error, unexpected T_PRINT in C:\xampp\htdocs\client.php on line 5 というメッセージが表示され、5行目【print "あなたのホスト名";】を何回も見ていますが、 何も間違っていない気がします。何が間違っているのでしょうか? どなたかご教授下さい。

    • ベストアンサー
    • PHP
  • 詳しい方

    あるブログサイトを閲覧しようと思い、アクセスするのですが、下記の様な文字しか出てきません。 Parse error: syntax error, unexpected T_STRING in /home/blog.minblo.com/public_html/lib/plugins/function.banner.php on line 17 何度 アクセスしても同じです。 何が原因なんでしょうか?

  • phpと<?xml version="1.0" encoding="utf-8"?>

    phpファイルの頭に<?xml version="1.0" encoding="utf-8"?>を入れると Parse error: syntax error, unexpected T_STRING in ・・・ というエラーが出ます。 なぜでしょう?

    • ベストアンサー
    • PHP