したがって、すべてのインスタンスを安全にリファクタリングできますか
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
の両方の宣言に対して正しく返されます。は の反対のブール値であり、これらの値は上記のようにです。$foo
isset
is_null
null
参考までに、 PHP 型比較表を確認することをお勧めします。
1: この場合、empty
関数に対して true を返すか、そうでなければ「偽」と見なされる型指定された値を参照しています。IE null
、0
、false
、空の配列 ( array()
)、および空の文字列 ( ''
)。'0'
も技術的には空ですが、言語としての PHP の奇妙な点だと思います。