構造体の作成（もう一度挑戦）⇒Uncaught TypeError: Cannot assign null to property がでる

今Paizaラーニングを解いていて、もはやCレベルには達しており、
pythonも扱えるようになってきたので、Cクラスの残りの部分はもうストップして
Bクラスの問題集に行こうと思います。

https://paiza.jp/works/mondai/class_primer/class_primer__make

前回は、下記でやっていますが下手すぎたので
再度やります。

https://qiita.com/Atsulabo/items/122181b1778afeca677f

まず構造体ってなんだ？というところから始めたので、
そこらへんは前回のを見て下さい。
ただ、PHPのコードは修正します。
```php
<?php
    class User{
        private string $nickname;
        private int $old;
        private string $birth;
        private string $state;
    
        public function __construct($nickname,$old, $birth, $state) {
              $this->nickname = $nickname;
              $this->old = $old;
              $this->birth = $birth;
              $this->state = $state;
        }
        
        public function getOutput(){
            $output = "User{" . "\n";
            $output = $output ."nickname : " .$this->nickname. "\n";
            $output = $output ."old : " .$this->old. "\n";
            $output = $output ."birth : " .$this->birth. "\n";
            $output = $output ."state : " .$this->state. "\n";
            $output = $output ."}" . "\n";
            return $output;
        }
    }
    
    //main
    $N = trim(fgets(STDIN));
    for($i=0; $i<=$N; $i++){
        list($nickname, $old, $birth, $state) = explode(" ", str_replace(array("\r\n","\r","\n"), '', fgets(STDIN)));
        $member = new User($nickname, $old, $birth, $state);
        echo $member->getOutput();
    }
?>
```

アウトプットはうまくいっているんですがランタイムエラーが。。。

```php
PHP Warning:  Undefined array key 1 in /workspace/Main.php on line 29
PHP Warning:  Undefined array key 2 in /workspace/Main.php on line 29
PHP Warning:  Undefined array key 3 in /workspace/Main.php on line 29
PHP Fatal error:  Uncaught TypeError: Cannot assign null to property User::$old of type int in /workspace/Main.php:10
Stack trace:
#0 /workspace/Main.php(30): User->__construct()
#1 {main}
  thrown in /workspace/Main.php on line 10
```
29行目というと、この部分ですね。
```php
list($nickname, $old, $birth, $state) = explode(" ",trim(fgets(STDIN)));
```
list()を使わないとエラーが消えるので
list()に問題があるようです。
ただ、このlist()のエラーに関してまだ調べられていないので
原因が分かり次第こちらに上げます。
ひとまずlist（）を使わない方法で解決。

```php
<?php
    class User{
        private string $nickname;
        private int $old;
        private string $birth;
        private string $state;
    
        public function __construct($nickname,$old, $birth, $state) {
              $this->nickname = $nickname;
              $this->old = $old;
              $this->birth = $birth;
              $this->state = $state;
        }
        public function getOutput(){
            $output = "User{" . "\n";
            $output = $output ."nickname : " .$this->nickname. "\n";
            $output = $output ."old : " .$this->old. "\n";
            $output = $output ."birth : " .$this->birth. "\n";
            $output = $output ."state : " .$this->state. "\n";
            $output = $output ."}" . "\n";
            return $output;
        }
    }
    
    $num = trim(fgets(STDIN));
    
    for($i=0; $i<$num; $i++){
        $arr = explode(" ", str_replace(array("\r\n","\r","\n"), '', fgets(STDIN)));
        //下でもOKだが、下の方が簡単かな
        //$arr = explode(" ", trim(fgets(STDIN)));
        $member = new User($arr[0], $arr[1], $arr[2], $arr[3]);
        echo $member->getOutput();
    }
?>

```