5年ぶりのメジャーバージョンアップに合わせて大幅改訂!
PHP8の基本構文から、クラス、DB連携、セキュリティ対策まで、しっかり習得。
PHPプログラミングの標準教科書『独習PHP』が、最新のPHP8に対応。
PHPでWebページ/アプリケーションを開発する際に必要な基礎的な知識、
PHPの基本構文から、クラス、データベース連携、セキュリティまで、
詳細かつ丁寧に解説します。
解説→例題→練習問題(理解度チェック)という3つのステップで、
PHPによるWebアプリ開発の基礎・基本テクニックをしっかり習得できます。
実際にサンプルコードを入力し、動作を確かめながら学習することで、
いっそう理解が深まります。
「PHPを一から学びたい・しっかり基礎固めをしたい」
「PHPでWebアプリを作りたい」という方におすすめの1冊です。
本書の学習メソッド
わかりやすい【解説】
PHP8でWebアプリケーションを開発する際に必要な基礎的な知識、PHPの基礎構文から、クラス、データ連携、セキュリティまで、詳細かつ丁寧に解説します。
理解が深まる【例題】
具体的な操作例やサンプルプログラム、実行結果を示し、手を動かして確認しながら学習できます。
力試しの【練習問題】
各節末にある【練習問題】、章末にある【理解度チェック】で、学習した内容を確認できます。
第1章 イントロダクション
1.1 PHPとWebアプリ
1.2 サーバーサイド技術におけるPHPの位置付け
1.3 PHP環境を設定するための手順
1.4 PHPの基本構文
この章の理解度チェック
第2章 PHPの基本
2.1 変数
2.2 定数
2.3 データ型
2.4 配列
2.5 型の相互変換
この章の理解度チェック
第3章 演算子
3.1 代数演算子
3.2 代入演算子
3.3 比較演算子
3.4 論理演算子
3.5 ビット演算子
3.6 その他の演算子
3.7 演算子の優先順位と結合則
この章の理解度チェック
第4章 制御構文
4.1 条件分岐
4.2 繰り返し処理
4.3 ループの制御
4.4 制御命令のその他の話題
この章の理解度チェック
第5章 組み込み関数
5.1 関数の基本
5.2 文字列関数
5.3 配列関数
5.4 正規表現(PCRE)関数
5.5 ファイルシステム関数
5.6 その他の関数
この章の理解度チェック
第6章 ユーザー定義関数
6.1 ユーザー定義関数とは?
6.2 変数の有効範囲(スコープ)
6.3 引数のさまざまな記法
6.4 関数呼び出しと戻り値
6.5 ジェネレーター
この章の理解度チェック
第7章 標準クラスライブラリ
7.1 オブジェクト指向プログラミングの基本
7.2 DateTimeクラス
7.3 DirectoryIteratorクラス
7.4 外部ライブラリの活用―Composer
7.5 HTTPクライアントGuzzle
この章の理解度チェック
第8章 リクエスト情報
8.1 リクエスト情報
8.2 ポストデータ―$_POST
8.3 クエリ情報―$_GET
8.4 ヘッダー情報―$_SERVER
8.5 サーバー環境変数―$_ENV
8.6 クッキー情報―$_COOKIE
8.7 セッション情報―$_SESSION
8.8 アップロード処理の実装―$_FILES
この章の理解度チェック
第9章 データベース連携
9.1 データベースの種類
9.2 データベース操作の基本
9.3 データベース抽象化レイヤー
9.4 データベースへの接続
9.5 SQLクエリの発行
9.6 結果セットの取得
9.7 パラメーター値のバインド
9.8 トランザクション処理
この章の理解度チェック
第10章 オブジェクト指向構文
10.1 クラスの定義
10.2 カプセル化
10.3 継承
10.4 ポリモーフィズム
10.5 トレイト
10.6 オブジェクトの操作
10.7 例外処理
10.8 マジックメソッド
10.9 名前空間
10.10 クラスの自動ローディング
この章の理解度チェック
第11章 高度なプログラミング
11.1 属性
11.2 セキュリティ対策
11.3 ドキュメンテーションコメント
11.4 VSCode+PHP Debug拡張によるデバッグ
この章の理解度チェック
付録A 「練習問題」「この章の理解度チェック」解答
お問い合わせ
内容についてのお問い合わせは、正誤表、追加情報をご確認後に、お送りいただくようお願いいたします。
正誤表、追加情報に掲載されていない書籍内容へのお問い合わせや
その他書籍に関するお問い合わせは、書籍のお問い合わせフォームからお送りください。
利用許諾に関するお問い合わせ
本書の書影(表紙画像)をご利用になりたい場合は書影許諾申請フォームから申請をお願いいたします。
書影(表紙画像)以外のご利用については、こちらからお問い合わせください。
ご購入いただいた書籍の種類を選択してください。
刷数は奥付(書籍の最終ページ)に記載されています。
現在表示されている正誤表の対象書籍
書籍の種類:
書籍の刷数:
本書に誤りまたは不十分な記述がありました。下記のとおり訂正し、お詫び申し上げます。
対象の書籍は正誤表がありません。
最終更新日:2023年12月04日
発生刷 |
ページ数 |
書籍改訂刷 |
電子書籍訂正 |
内容 |
登録日 |
1刷 |
098
「3.2.2 分割代入」本文下から2行目 |
4刷 |
済 |
誤 |
ちなみに、左辺の要素数が右辺よりも大きい場合には、 |
正 |
ちなみに、左辺の要素数が右辺よりも少ない場合には、 |
備
考 |
※リフローEPUBの場合、「3.2.2 分割代入」の4つ目の段落が該当箇所になります。 |
|
2022.08.16 |
1刷 |
102
リスト3.15の下 本文7行目 |
4刷 |
済 |
誤 |
'13xyz'は13とみなされ、「'13xyz' == '13'」はtrueとなります。 |
正 |
'13xyz'は13とみなされ、「'13xyz' == 13」はtrueとなります。 |
備
考 |
リフローEPUBの場合、第3章「3.3.1文字列混在の比較」内に該当箇所があります。 |
|
2023.11.22 |
1刷 |
113
図3.14 ビットシフト演算子 |
2刷 |
済 |
誤 |
(画像クリックで拡大) |
正 |
(画像クリックで拡大) |
備
考 |
左側の「10進数」の下の数値を修正しました。
リフローEPUBの場合、第3章「3.5.2 ビットシフト演算子」内に該当箇所があります。 |
|
2021.09.02 |
1刷 |
169
「5.2.3 部分文字列を取得する(1)― mb_substr関数」 本文3行目 |
4刷 |
済 |
誤 |
引数$start、$encodingに負数を指定した場合は、 |
正 |
引数$start、$lengthに負数を指定した場合は、 |
備
考 |
※リフローEPUBの場合、「5.2.3 部分文字列を取得する(1)― mb_substr関数」の構文「mb_substr関数」のすぐ下にある段落が該当箇所になります |
|
2022.08.15 |
1刷 |
187
note 1行目 |
4刷 |
済 |
誤 |
引数$additional_paramsには |
正 |
引数$additional_headersには |
備
考 |
リフローEPUBの場合、リスト5.16のすぐ下の「note」が該当箇所となります。 |
|
2023.11.22 |
1刷 |
191
本文上から5行目 |
4刷 |
済 |
誤 |
リスト5.16の太字部分をこのように書き換えると、 |
正 |
リスト5.18の太字部分をこのように書き換えると、 |
備
考 |
※リフローEPUBの場合、「5.3.1 配列の要素数を取得する――count関数」の「note」のすぐ上の段落が該当箇所になります。 |
|
2022.09.02 |
1刷 |
214
図5.20 比較対象の文字列のグレー枠内 |
4刷 |
済 |
誤 |
電話番号 X9-333-9999 |
正 |
電話番号 X9(333)9999 |
|
2022.08.15 |
1刷 |
215
表5.14 上から5行目の「パターン」 |
4刷 |
済 |
|
2023.11.22 |
1刷 |
237
練習問題5.3 [2] 問題文の最終行 |
4刷 |
済 |
誤 |
「/[a-z0-9\.\-]+@([a-z0-9\
-]+\
-)+[a-z0-9\
-]+/i」 |
正 |
「/[a-z0-9\.\-]+@([a-z0-9\-]+\.)+[a-z0-9\-]+/i」 |
備
考 |
中央の式「@( )」内、2つ目のバックスラッシュの後ろを「-」から「.」に修正しました。
リフローEPUBの場合、第5章「5.4.9(例) 正規表現による検索」内に該当箇所があります。 |
|
2023.11.22 |
1刷 |
286
本文下から5行目 |
4刷 |
済 |
誤 |
可変長関数は引数リストの末尾に |
正 |
可変長引数は引数リストの末尾に |
備
考 |
リフローEPUBの場合、第6章「6.3.5(例) 可変長引数と通常の引数の混在」内の太字の1行が該当箇所です。 |
|
2023.11.22 |
1刷 |
306
第6章「この章の理解度チェック」[3] prac3.php の⑥の後ろ |
4刷 |
済 |
誤 |
fn($num) [ 6 ] |
正 |
fn($num) [ 6 ], |
備
考 |
[ 6 ]の後ろにカンマを入れます。
※リフローEPUBの場合、Chapter 6の末尾にある「この章の理解度チェック」に該当箇所があります。 |
|
2023.11.22 |
1刷 |
377
「note」7行目 |
5刷 |
済 |
誤 |
より正しくは、header関数の引数$codeに |
正 |
より正しくは、header関数の引数$response_codeに |
備
考 |
※リフローEPUBの場合、「8.4.4(補足) レスポンスヘッダーを設定する(1)─ リダイレクト」の末尾にある「note」が該当箇所になります。 |
|
2023.12.04 |
1刷 |
429
表9.7 「SQL Server」 の「接続文字列(例)」 |
4刷 |
済 |
誤 |
mssql:host=127.0.0.1; dbname=selfphp |
正 |
sqlsrv:Server=127.0.0.1; dbname=selfphp |
備
考 |
リフローEPUBの場合、第9章「9.4.1 接続と切断」内に該当箇所があります。 |
|
2023.11.24 |
1刷 |
436
リスト9.17 |
未 |
未 |
誤 |
|
正 |
P.436のリスト9.17 DbManager.phpへの太字追記部分の下に以下を追加します。
$db->setAttribute(PDO::ATTR_STRINGIFY_FETCHES, true); |
備
考 |
刊行後、PHP8.1で仕様が変更になったようですので、上記の追記をしました。
https://www.php.net/manual/ja/migration81.incompatible.php#migration81.incompatible.pdo
※リフローEPUB場合、第9章「9.4.4」の「(1)PDO::ATTR_ERRMODE」内に該当箇所があります。 |
|
2023.06.16 |
1刷 |
554
リスト10.67 except_custom2.php 下から3行目 |
4刷 |
済 |
誤 |
return $this->getUserid; |
正 |
return $this->userid; |
備
考 |
リフローEPUBの場合、第10章「10.7.6. 独自の例外クラス」内に該当箇所があります。 |
|
2023.11.24 |
1刷 |
633
練習問題5.1 [1] p_substr.phpの3行目 |
4刷 |
済 |
誤 |
print mb_substr($str, 3, 3); |
正 |
print mb_substr($str, 4, 3); |
備
考 |
リフローEPUBの場合、付録A「第5章の解答」内に該当箇所があります。 |
|
2023.11.22 |
1刷 |
635
この章の理解度チェック(P.305)[3]の(6)の解答 |
4刷 |
済 |
誤 |
=> $num ** 2 |
正 |
=> $num ** 2, |
備
考 |
コードの末尾に「,」を追加します。
※リフローEPUBの場合、付録A「第6章の解答」内に該当箇所があります。
2023.11.24:内容更新 |
|
2022.08.15 |