PHP:プロになるためのPHPプログラミング入門 9

公開:2026.05.27(水) 07:33

プロになるためのPHPプログラミング入門 8

以下書籍に付属するサンプルの実行環境を構築する。
プロになるための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

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)

0 件のコメント:

その他の記事