xDebug调用nonExisting属性

I have a strange problem with xdebugger. Can somone pls think of a logical explanation?oO?

I have a class:

abstract class AbstractEntity
{

    public $last_modified;
    public $massEntry = array();

    public function __construct(array $properties = null)
    {
        if (!empty($properties)) {
            $this->assignProperties($properties);
        }
    }

    public function __set($property, $value = null)
    {
        if (property_exists($this, $property)) {
            $this->$property = $value;
            return $this;
        }
        throw new InvalidPropertyException("Property $property not found.");
    }

    public function __get($property)
    {
        if (property_exists($this, $property)) {
            return $this->$property;
        }
        throw new InvalidPropertyException("Property $property not found.");
    }
   public function assignProperties(array $properties)
   {
      $availableProps = array_keys(get_object_vars($this));

      foreach ($availableProps as $property) {
          if (isset($properties[$property])) {
              $this->$property = $properties[$property];
          }
      }
    }

    public function toArray()
    {
        return (array) $this;
    }.....

This serves as a base for DB objects. when i use a object to populate it via a db adapter like:

$entity = new EntityExtendingTheClass($arrayOfData);

Now here comes the spooky part, when i run the script normally i get no errors whatsoever. But when i run it with breakpoints i get this wierd problem:

Property composites not found

The wierd thing is. I DONT HAVE in a whole project this property. So there is no way it gets it from code.

The most bizzare thing is when i cach the error i get the call tht an nonexisting property was triedto be called. wich my coude dous not.

Any sugestions?

UPDATE:

Just tried to make it stop via breakpoint(out of desparation) and no breakpoint.

The biggest lol ist tht it only happens when i try to go with debugger in the creation of the object. if i ski it it dous not break.... WTH?

Xdebug assigns properties whilst debugging. You could add something to check for the composites property?

public function __get($property)
{
    if (property_exists($this, $property) || $property == 'composites') {
        return $this->$property;
    }
    throw new InvalidPropertyException("Property $property not found.");
}

Just throwing it out there as a suggestion- might work? :) Maybe you could also check to see if xdebug is installed, and only check for the composites in that case?

HTH