• コードの冒頭に全角
    スペースが入ると、エラーになりますか? また、途中で...
  • guest 
    コードの冒頭に全角スペースが入ると、エラーになりますか?
    また、途中では許される場合もありますか?

    PHP追記時:HTTP ERROR 500が出ました。そこで、他の方への回答を参考にして、コードを少しずつ書いては画面に表示させていきました。結果、61行目の$err_msg['pass'] = MSG05;の前に「全角スペース」が入ってエラーになっていることが分かりました。
    全角スペースは全てエラーになると思い、同行=の後を全角スペースに変更してみましたが、
    問題なく表示できました。
    回答 1

    返信者画像

    ウェブカツ!!コーチ 
    講師からの回答
    自分で試してみるのはとても大事です。

    答えをお伝えすると全角スペースは全てエラーになります。
    ただし、「エラーの種類」が「全角スペースが挿入された箇所」によって違います。
    この部の最後でやっていきますが、エラーには種類があります。

    そもそもの構文が誤ったエラー(機械が全くコードを理解できない)は「HTTP ERROR 500」になります。

    構文は理解出来るけど実行してみたら実行困難だったという致命的なエラーは「fatal error(フェイタルエラー)」のメッセージが画面に表示されます。(画面にエラー表示させる設定の場合。表示させない設定だと画面は真っ白になります)

    変数の前やif文などの前に全角スペースがあると「HTTP ERROR 500」になります。
    10行目のdefine関数の前に全角スペースを入れた場合や、試された様な=の前後などにスペースが入っている場合は「fatal error(フェイタルエラー)」になります。

    なので、fetal errorの場合は「実行してみて初めてエラーがわかる」ものです。
    そのため、「送信」ボタンを押して7行目のif文の中に処理が初めて入って「あ!これ、これ以上処理できないわ!」とPHPがエラーを表示します。

    初期表示時(初めて画面を表示した時=送信ボタンをまだ押していない状態)では、エラーは出ないわけですね。

    ちなみにAtomのエディターであれば、全角スペース・半角スペース、改行など「目には見えないもの」を見える様に表示してくれる便利機能があるので入れておくと発見しやすくなります。

    http://tech.machiiro.jp/entry/2016/10/31/104815
    https://qiita.com/cuisicumber/items/bfed49ae5b72b302a2fe
    https://qiita.com/saicologic/items/d96f69ebcb6c0a12c2c2

    guest 
    回答ありがとうございます。また、Atom便利機能設定しました。

    いただいた内容について、念のため検証しました。
    ①10行目のdefine関数の前→送信ボタンクリック後、fatal error
    ②61行目「=」の前→HTTP ERROR 500
    ③61行目「=」の後→表示は問題なし→
    パスワードとパスワード再入力が6文字以上でない入力情報で、送信
    →Warning: Use of undefined constant MSG05
    - assumed ' MSG05' (this will throw an Error in a future version of PHP)
    in C:\MAMP\htdocs\sample\index.php on line 61
    エラーではなく、Warningなんですね。
    本質的にはいっしょかもしれませんが、エラーにならないのは
    不思議に感じました。