「Phpのclassの変数を取得代入する際のエラーについて」の版間の差分

提供:sufeeWiki
ナビゲーションに移動 検索に移動
編集の要約なし
 
1行目: 1行目:
==概要==
==概要==
Fatal error: Uncaught Error: Typed property $this->val must not be accessed before initialization
Fatal error: Uncaught Error: Typed property $this->val must not be accessed before initialization <br>
つまり変数が型のなにかに初期化されておらずundefinedの状態で呼び出すなということ(?)
つまり変数が型のなにかに初期化されておらずundefinedの状態で呼び出すなということ(?)
==例==
==例==

2022年3月24日 (木) 00:09時点における最新版

概要

Fatal error: Uncaught Error: Typed property $this->val must not be accessed before initialization
つまり変数が型のなにかに初期化されておらずundefinedの状態で呼び出すなということ(?)

原因となるClass

class Cat
{
 private string $val;
 function set($q)
 {
   $this->val = $q;
 }
 function get()
 {
  return $this->val;
 }
}

$love = new Cat();
$love->set("シャム猫");
echo $love.get();

// Fatal error: Uncaught Error: Typed property Cat::$val must not be accessed before initialization line 6

対処法

class Cat
{
 private string $val = "猫";
 function set($q)
 {
   $this->val = $q;
 }
 function get()
 {
  return $this->val;
 }
}

$love = new Cat();
$love->set("シャム猫");
echo $love.get();

// シャム猫