アプリ版:「スタンプのみでお礼する」機能のリリースについて

下記のプログラムを実行するとFatal error: Cannot use [] for reading inと出ます。
これは[]の使い方が間違っているのでしょうか?

else{
$C_nm = $_GET['C_num'];
$sql = 'select * from example where C_nm= '.$C_nm.'';
foreach ($dbh->query($sql) as $row) {
$get_C_nam[] = $row['C_nam'];
$get_C_nm[] = $row['C_nm'];
$get_C_phn[] = $row['C_phn'];
$get_C_add[] = $row['C_add'];
}
$result = array($get_C_nam[], $get_C_nm[], $get_C_phn[], $get_C_add[]);
}

A 回答 (2件)

キー省略した角括弧 [] は、書き込み用の記法です。


読み取りは $get_C_nam[] でなく、
$get_C_nam または $get_C_nam[0] 等としましょう。

書き込み / キー省略で配列の末尾に追加
https://www.php.net/manual/ja/language.types.arr …

読み取り / キー省略できない
https://www.php.net/manual/ja/language.types.arr …

ただし素直に考えれば、以下の様な処理で十分かと思います。
foreach ($dbh->query($sql) as $r) {
_ $result[] = array( $r['name'], $r['phone'], $r['address'] );
}
    • good
    • 1

はい。

間違っています。
どういう動作を期待したんでしょうか?
配列全体を意味するつもりなら、[] は不要です。
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!