「Phpのclassの変数を取得代入する際のエラーについて」の版間の差分
ナビゲーションに移動
検索に移動
Sufee Admin (トーク | 投稿記録) ページの作成:「==概要== Fatal error: Uncaught Error: Typed property $this->val must not be accessed before initialization つまり変数が型のなにかに初期化されておらずundefinedの状態で呼び出すなということ(?) ==例==」 |
Sufee Admin (トーク | 投稿記録) |
||
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();
// シャム猫