技術評論社から出版されている「PHP公式資格教科書 PHP5技術者認定初級試験対応」について、本文に一部、誤りがありました。すみません。ここでその正誤表(速報)を紹介します。
問題文に「返り値の配列が空となるような$_POST['point']の値を2つ選択せよ。」とありますが、このソースでは文字列を代入しているので返り値が配列になることはありません。ソースコードに以下の修正が必要です。
2行目:$error = array(); 4行目:$error[] = "Your point must be a number."; 6行目:$error[] = "Your point must be at least 70 and no more than 90.";
セットされます。
ページ上部の第7章の説明が第6章のそれと完全に同一で「データベース」の説明としては不適切となっています。
「プログラム1」の4行目、条件式が書き込み可能な場合に「書き込みパーミッションがありません。」というメッセージを出力して終了するようになっていますので、メッセージ通り動作させるには、is_writable関数の前に否定の演算子「!」を付ける必要があります。
文字列の中で配列変数の値を参照する場合、以下の書き方で間違いではありませんが、クォートで明示的に配列の要素が文字列であることが望ましいとされます。
同じく、P.102にも、$SERVER[SCRIPT_NAME] という表記が出てきますが、これも同じです。
書籍の中では、プログラムを簡単に見せた目に、htmlentities() に、引数が 1つしか指定していませんが、第3引数まで指定することが PHPマニュアルで推奨されています。
以下のように定義されていますが、この[...]の部分は、Unicodeを想定しない、ASCIIモードでの一般的な理解の補足のために付けています。これらは、Unicodeオプションを付けた場合、異なる動作になる場合があります。
\d | 数字[0-9] |
---|---|
\D | 数字以外[^0-9] |
\w | 単語[a-zA-Z0-9_] |
\W | 単語以外[^a-zA-Z0-9_] |
\s | 空白文字[ \t\n\r\f\v] |
\S | 空白文字以外[^ \t\n\r\f\v] |