Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

PDOの=>に関するエラーが解決しません。Parse error: syntax error, unexpected '=>' (T_DOUBLE_ARROW)

解決したいこと

こんにちは。
PHP基礎入門という本で勉強している者です。
PDOのオプション配列を本通りに入力しているはずですが
=> この記号に問題があるようです。

解決方法を教えて頂けませんでしょうか。

発生している問題・エラー

出ているエラーメッセージ
Parse error: syntax error, unexpected '=>' (T_DOUBLE_ARROW), expecting ']' in /var/www/html/index.php on line 7


NameError (uninitialized constant World)
```

または、問題・エラーが起きている画像をここにドラッグアンドドロップ

該当するソースコード

<?php
try {
$user = "root";
$password = "secret";
$opt [
  PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
  PDO::ATTR_EMULATE_PREPARES => false,
  PDO::MYSQL_ATTR_MULTI_STATEMENTS => false,
];
$dbh = new PDO('mysql:host=localhost;dbname=sample_db;charset=utf8', $user, $password, $opt);
var_dump($dbh);
} catch (PDOException $e) {
  echo "エラー!: " . $e->getMEssage() . "<br>";
  exit;
}
?>

### 自分で試したこと
グーグルで検索しまくりましたが、正直よく分からない状態です。

0 likes

2Answer

$opt [$opt = [ に直せば動くと思います。

本来書きたいのは、以下のように $opt に連想配列を代入するコードです。

$opt = ["a" => "b", "c" => "d"];

それが、イコールを入れ忘れたことによって以下のようなコードになり、このようには書けないのでエラーが出ています。

$opt["a" => "b"];

エラーが unexpected '=>' になる理由は、 PHP の構文として $opt [ の部分までは正しいからです。 $opt[0]$opt["foo"] のように書くことはできますね。しかし、このような使い方の角カッコの中に => を書くことはできません。それで => の位置でエラーが出ます。

1Like

Comments

  1. @programsuki

    Questioner

    教えて頂きありがとうございます!

Comments

  1. @programsuki

    Questioner

    教えて頂きありがとうございます!

Your answer might help someone💌