技術評論社から出版されている「PHP公式資格教科書 PHP5技術者認定初級試験対応」について、本文に一部、誤りがありました。すみません。ここでその正誤表(速報)を紹介します。

http://aoikujira.com/demo/sozai/20111128-G7-php-kyoukasyo.jpg

PHP公式資格教科書の正誤表 *

P9 プログラム2の拡張子が「html」になっている *

  • [誤] html
  • [正] php

P27 printf,sprintfの表 *

  • [誤] ptintf($format,$args...)
  • [正] printf($format,$args...)

P35 「変数の操作」の5行目のデクリメントの記述がおかしい *

  • [誤]「$--」
  • [正]「$i--」

P36 解説1 *

  • [誤] sgtrpos()
  • [正] strpos()

P51 問題2の誤り *

問題文に「返り値の配列が空となるような$_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.";

P73, 74 問題2の解説の誤り *

  • [誤] array()関数を使って連想配列をセットしたとき、配列キーは文字コード順に

セットされます。

  • [正] ksort()関数を使って連想配列をソートすると、配列キーは文字コード順に並び変わります。

P101 HTMLの代表的なフォーム要素の表 *

  • [誤] </textare>
  • [正] </textarea>

P122 第7章の説明 *

ページ上部の第7章の説明が第6章のそれと完全に同一で「データベース」の説明としては不適切となっています。

[データベース]の説明
本章では、Webフォームとデータベースを扱います。PHPではHTMLのフォームから送信した値を手軽に利用できる仕組みが備わっています。どのような処理でフォームを処理するのか確認しましょう。また、Webアプリケーションを作る上で、データベースの操作は外せません。データベースの基本的な事柄を整理し、PHPでデータベースを操作する方法を紹介しましょう。

P175 session.auto_startの記述ミス「解説」の3行目 *

  • [誤]「session_auto_start」
  • [正]「session.auto_start」

P194 書き込みテストの誤り *

「プログラム1」の4行目、条件式が書き込み可能な場合に「書き込みパーミッションがありません。」というメッセージを出力して終了するようになっていますので、メッセージ通り動作させるには、is_writable関数の前に否定の演算子「!」を付ける必要があります。

  • [誤] if (is_writable($afile)) {
  • [正] if (!is_writable($afile)) {

P219 脱字「警告(Warning)」の説明の4行目。 *

  • [誤]「動作を停止することはありませ。」
  • [正]「動作を停止することはありません。」

P.95, 96, 98, 102, 106の補足 *

文字列の中で配列変数の値を参照する場合、以下の書き方で間違いではありませんが、クォートで明示的に配列の要素が文字列であることが望ましいとされます。

  • [記述] $_SERVER[SCRIPT_NAME]
  • [望ましい] $_SERVER['SCRIPT_NAME']

同じく、P.102にも、$SERVER[SCRIPT_NAME] という表記が出てきますが、これも同じです。

P.108,116, 194, 195, 197, 199, 213の誤り *

書籍の中では、プログラムを簡単に見せた目に、htmlentities() に、引数が 1つしか指定していませんが、第3引数まで指定することが PHPマニュアルで推奨されています。

P.249の正規表現の表の補足 *

以下のように定義されていますが、この[...]の部分は、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]