したがって、すべてのインスタンスを安全にリファクタリングできますか
class Blah
{
// ...
private $foo = null;
// ...
}
に
class Blah
{
// ...
private $foo;
// ...
}
?
したがって、すべてのインスタンスを安全にリファクタリングできますか
class Blah
{
// ...
private $foo = null;
// ...
}
に
class Blah
{
// ...
private $foo;
// ...
}
?
簡単な答えです。http://php.net/manual/en/language.types.null.phpを参照してください。
特別な NULL 値は、値のない変数を表します。NULL は、null 型の唯一の可能な値です。
プロパティでを実行することで簡単にテストでき、var_dump()両方のインスタンスが表示されます。NULL
class Blah1
{
private $foo;
function test()
{
var_dump($this->foo);
}
}
$test1 = new Blah1();
$test1->test(); // Outputs NULL
class Blah2
{
private $foo = NULL;
function test()
{
var_dump($this->foo);
}
}
$test2 = new Blah2();
$test2->test(); // Outputs NULL
PHP 7.4 は型付きプロパティを追加します。これはnull、型なしプロパティのようにデフォルトではデフォルトではなく、代わりに特別な「初期化されていない」状態にデフォルト設定されます。プロパティが書き込まれる前に読み取られると、エラーが発生します。プロパティについては、PHP ドキュメントの「型宣言」セクションを参照してください。
プロパティの既定値が null であることは、既定値がないことと同じですか?
特別な
NULL値は、値のない変数を表します。
null特定の値に設定されていない変数の概念です。nullと空の1の値を区別するときに、比較的間違いを犯しやすいです。
private $foo = null;とまったく同じprivate $foo;です。どちらの場合も、クラス属性は の値で定義されますnull。
isset;falseの両方の宣言に対して正しく返されます。は の反対のブール値であり、これらの値は上記のようにです。$fooissetis_nullnull
参考までに、 PHP 型比較表を確認することをお勧めします。
1: この場合、empty関数に対して true を返すか、そうでなければ「偽」と見なされる型指定された値を参照しています。IE null、0、false、空の配列 ( array())、および空の文字列 ( '')。'0'も技術的には空ですが、言語としての PHP の奇妙な点だと思います。