プロになるためのPHPプログラミング入門 8
以下書籍に付属するサンプルの実行環境を構築する。
「プロになるためのPHPプログラミング入門」(ISBN 978-4-7741-4972-1)
環境は以下記事のものを使用
「PHP:プロになるためのPHPプログラミング入門 サンプル環境構築」
PHP:8.3.30
MySQL:8.0.46
「プロになるためのPHPプログラミング入門」(ISBN 978-4-7741-4972-1)
環境は以下記事のものを使用
「PHP:プロになるためのPHPプログラミング入門 サンプル環境構築」
PHP:8.3.30
MySQL:8.0.46
1.6.4 セッション管理を行うアプリケーション (P.77)
サンプルを実行するも当然エラーになる。
http://localhost:8080/prophp_sample/ppa/p16sessa.php
※ 書籍では "p41sassq.php" となっているが "p16sessa.php" の誤りを思われる。
◆ リスト1-17 質問画面プログラム (/ppa/p16sessa.php)
http://localhost:8080/prophp_sample/ppa/p16sessa.php
Fatal error: Uncaught TypeError: PpPage::display(): Argument #2 ($elem) must be of type array, stdClass given, called in /var/www/prophp_sample/www/ppa/p16sessa.php on line 36 and defined in /var/www/prophp_sample/www/ppa/ppPage.php:26 Stack trace: #0 /var/www/prophp_sample/www/ppa/p16sessa.php(36): PpPage->display('p16sessa.html', Object(stdClass)) #1 {main} thrown in /var/www/prophp_sample/www/ppa/ppPage.php on line 26
※ 書籍では "p41sassq.php" となっているが "p16sessa.php" の誤りを思われる。
◆ リスト1-17 質問画面プログラム (/ppa/p16sessa.php)
displayメソッド第2引数にオブジェクトを渡しているので配列に変更する。
修正前:
修正後:
$dobj = new stdClass();
$dobj->ans = $amsg[$ans];
$dobj->ok = $ans ? true : false;
$page = new PpPage;
$page->display('p16sessa.html', $dobj);
修正後:
$dobj = [
'ans' => $amsg[$ans],
'ok' => $ans? true: false,
];
$page = new PpPage;
$page->display('p16sessa.html', $dobj)

