私はプロパティが定義されていないオブジェクトを持っていますが、以下のチェックのどれもがnullであるオブジェクトに有利なものはありません。phpオブジェクトはいつnullですか?
nullとして割り当てると、オブジェクトはnullのみです。私はいくつか試してみて、他の選択肢を探しましたが、どちらも、オブジェクトがむしろ反対のヌルであることを伝えていません。では、オブジェクトがnullかどうか、または以下のすべてがfalseであるかどうかをどうやって調べるのでしょうか?
プロパティが設定されていなくても保持されるため、オブジェクトはnullになりません。それはあなたを助けている場合
class LinkedList implements DataStructure {
public $head;
public function __construct(){
$this->head = new Node;
$this->tail = new Node;
//checking all posibilities i am aware of
echo "are you an object ? ".gettype($this->head);
echo "<br/>are you null ? ".is_null($this->head);
echo "<br/>are you empty ? ".empty($this->head);
echo "<br/>are you null ? ". ($this->head === null);
echo "<br/>what is your count ? ".count($this->head);
echo "<br/>maybe you are not set ? ".isset($this->head);
}
}
これはみんなが助けて...私のNodeクラスである私
class Node {
public $next;
public $file;
public $folder;
public $parentDirectory;
}
上記のコードの出力は次のようになります。また、
are you an object ? object
are you null ?
are you empty ?
are you null ?
what is your count ? 1
maybe you are not set ? 1
var_dump($this->head)
戻り、この
object(App\Library\DataStructures\Node)#202 (4) {
["next"]=>
NULL
["file"]=>
NULL
["folder"]=>
NULL
["parentDirectory"]=>
NULL
}
ありがとう。
ありがとうございます。しかし、そうであれば、オブジェクトが宣言されていてプロパティが定義されていないかどうかをチェックする正しい方法は何ですか? –
それが '$ this-> head ===新しいNode()'であるかどうかだけを確認できます。 – zed
大丈夫、ありがとう –