私はPHPワールドを初めて使い、php.netから学んでいます。オブジェクトを配列にキャストするとき、クラス名またはアスタリスクキー(*)が配列キーのプライベートプロパティおよびプロテクトプロパティ名の前に付加されていると、NULLおよびNULLがプライベートプロパティおよびプロテクトプロパティ名の周りに追加されることがわかります。なぜphpはprivateとprotectedのプロパティ名にnullバイトを追加しますか?
しかし、私の質問はWHY php add null bytes なぜが原因ですか?
誰でも簡単かつ簡単に言葉で伝えることができます。
例が多く役立ちます。
おかげ
実際の理由は、異なるクラスで宣言された同じ名前のプロパティの明確化です。プライベートプロパティが含まれている場合、単一のオブジェクト上に同じ名前の複数のプロパティを持つことができます。 – NikiC
@ NikiC具体的には 'NUL'バイトはなぜですか、これは既にアスタリスクが追加されていますか? – deceze
先頭のヌルバイトは、パブリックプロパティと非パブリックプロパティを簡単に区別する方法です。クラス名の後のヌルバイトは、クラス名が明示的なコピーを必要とせずにヌル終了文字列として使用可能であることを確認します。通常、PHPは一般にnullバイトを使用して、匿名クラス名、create_function関数など、さまざまな特別な名前と予約された名前を表します。 – NikiC