property_exists

(PHP 5 >= 5.1.0RC1)

property_exists --  Checks if the object or class has a property

Описание

bool property_exists ( mixed class, string property )

This function checks if the given property exists in the specified class (and if it was declared as public).

Замечание: As opposed with isset(), property_exists() returns TRUE even if the property has the value NULL.

Список параметров

class

A string with the class name or an object of the class to test for

property

The name of the property

Возвращаемые значения

Returns TRUE if the property exists, FALSE if it doesn't exist or NULL in case of an error.

Примеры

Пример 1. A property_exists() example

<?php

class myClass {
   public
$mine;
   private
$xpto;
}

var_dump(property_exists('myClass', 'mine'));  //true
var_dump(property_exists(new myClass, 'mine')); //true
var_dump(property_exists('myClass', 'xpto'));  //false, isn't public

?>

Смотрите также

method_exists()



property_exists
jcaplan at bogus dot amazon dot com
08-Jun-2006 02:35
The documentation leaves out the important case of new properties you add to objects at run time.  In fact, property_exists will return true if you ask it about such properties.

<?
class Y {}
$y = new Y;

echo isset(
$y->prop ) ? "yes\n" : "no\n"; // no;
echo property_exists( 'Y', 'prop' ) ? "yes\n" : "no\n"; // no
echo property_exists( $y, 'prop' ) ? "yes\n" : "no\n"; // no

$y->prop = null;

echo isset(
$y->prop ) ? "yes\n" : "no\n"; // no;
echo property_exists( 'Y', 'prop' ) ? "yes\n" : "no\n"; // no
echo property_exists( $y, 'prop' ) ? "yes\n" : "no\n"; // yes
?>
Pete W
01-Jun-2006 11:52
In a similar vein to the previous note, To check in PHP4 if an object has a property, even if the property is null:

<?php

if(array_key_exists('propertyName',get_object_vars($myObj)))
{
 
// ..the property has been defined

?>
timshel
14-Nov-2005 04:20
I haven't tested this with the exact function semantics of 5.1, but this code should implement this function in php < 5.1:

<?php
if (!function_exists('property_exists')) {
  function
property_exists($class, $property) {
   if (
is_object($class))
    
$class = get_class($class);

   return
array_key_exists($property, get_class_vars($class));
  }
}
?>

<method_existsClasskit>
 Last updated: Tue, 15 Nov 2005