7

これが私のコードです:

<?php

$madeUpObject = new \stdClass();
$madeUpObject->madeUpProperty = "abc";

echo $madeUpObject->madeUpProperty;
echo "<br />";

if (property_exists('stdClass', 'madeUpProperty')) {
    echo "exists";
} else {
    echo "does not exist";
}
?>

出力は次のとおりです。

abc は存在しません

では、なぜこれが機能しないのでしょうか。

4

3 に答える 3

14

試す:

if( property_exists($madeUpObject, 'madeUpProperty')) {

(私が行ったようなオブジェクトの代わりに)クラス名を指定することは、stdClass定義でプロパティを定義する必要があることを意味します。

このデモから、次のように出力されることがわかります。

abc
exists 
于 2013-02-01T21:09:23.537 に答える
5

stdClassプロパティがないためです。あなたは渡す必要があります$madeUpObject

property_exists($madeUpObject, 'madeUpProperty');

関数のプロトタイプは次のとおりです。

bool property_exists ( mixed $class, string $property )

$classパラメータは「クラス名またはクラスのオブジェクト」である必要があります。プロパティの$property名前である必要があります。

于 2013-02-01T21:09:53.067 に答える
2

NULL値について心配しない限り、。を使用して単純に保つことができますisset

于 2013-02-01T21:11:07.017 に答える