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

提供:sufeeWiki
ナビゲーションに移動 検索に移動
ページの作成:「==概要== Fatal error: Uncaught Error: Typed property $this->val must not be accessed before initialization つまり変数が型のなにかに初期化されておらずundefinedの状態で呼び出すなということ(?) ==例==」
 
3行目: 3行目:
つまり変数が型のなにかに初期化されておらずundefinedの状態で呼び出すなということ(?)
つまり変数が型のなにかに初期化されておらずundefinedの状態で呼び出すなということ(?)
==例==
==例==
原因となるClass<syntaxhighlight lang="php" line="1">
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
</syntaxhighlight>対処法<syntaxhighlight lang="php" line="1">
class Cat
{
private string $val = "猫";
function set($q)
{
  $this->val = $q;
}
function get()
{
  return $this->val;
}
}
$love = new Cat();
$love->set("シャム猫");
echo $love.get();
// シャム猫
</syntaxhighlight>

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

概要

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();

// シャム猫