75301


ごく単純な記述です。  
phpの記述の下にはHTML内でインスタンスを作成したり、メソッドの実行などを記述していましたが消しました。  
添付画像のように"on line 2"、すなわち2行目の"class List{"の部分です。

何度か見直したり書き直ししたのですが、 エラーが消えません。  
エディタはVSCode、ブラウザはChromeで環境はXAMPPです。

理由のわかる方いらっしゃいましたら教えて下さい。  
宜しくお願い致します。

[code]

    <?php
    class List{
        public $name;
        public $age;
        
        public function hello(){
            echo "こんにちは";
        }
    }
    ?>
    
[/code]

**エラー内容**

[code]

    Parse error: syntax error, unexpected 'List' (T_LIST), expecting identifier (T_STRING) in C:\xampp\htdocs●●●●.php on line 2
    
[/code]


CC BY-SA 4.0
2021-04-15T06:39:14.983
75300
2021-04-15T06:54:10.843
2021-04-15T06:42:35.453
3060
42150
question
php
PHPでclassを定義しようとするとエラーが出ます


`List`がキーワード(予約語)だからでしょう。

[キーワードのリスト](https://www.php.net/manual/ja/reserved.keywords.php)

> これらのキーワードは、PHP では特別な意味があります。これらのいくつかは 関数やメソッドのようなものを表し、いくつかは定数のようなものを表す、
> といったようになっていますが、実際にはそうではありません。実際には、 これらは言語を構成するものです。以下のキーワードはいずれも定数、クラス名、
> 関数名として使用することはできません。 これらを変数名として使用することは一般的には可能ですが、 混乱を生じる可能性があります。

[Are PHP keywords case-
sensitive?](https://stackoverflow.com/q/20624257/9014308)

> Case insensitive (both user defined and PHP defined)
>
>   * functions
>   * class constructors
>   * class methods
>   * keywords and constructs (if, else, null, foreach, echo etc.)
>

関数やクラスコンストラクタ/メソッドは大文字小文字の区別が無いので、[list()](https://www.php.net/manual/ja/function.list.php)と衝突したということでしょう。

他にもあります。  
[予約語の一覧](https://www.php.net/manual/ja/reserved.php)


CC BY-SA 4.0
2021-04-15T06:54:10.843
75301
2021-04-15T06:54:10.843
26370
75300
answer