|
|
|
| Здравствуйте всем.
вот вопрос небольшой. Есть класс:
<?php
class Disc {
private $attrs = array( 'name'=> "", 'songs'=>array());
// ----------------------------------------------------------------
protected function __get( $attrName ) {
if ( array_key_exists( $attrName, $this->attrs )) {
return $this->attrs[$attrName];
}
else {
throw new Exception("<b>Ошибка</b>: свойства \"$attrName\" не существует");
}
}
protected function __set( $attrName, $attrValue ) {
if ( array_key_exists( $attrName, $this->attrs )) {
$this->attrs[$attrName] = $attrValue;
}
else {
throw new Exception("<b>Ошибка</b>: свойства \"$attrName\" не существует");
}
}
}
////////////////////////////////////////////////////////////////////////
try {
$foo = new Disc();
$foo->name = "tra-la-la";
$foo->songs[] = "bla-bla-bla"; // на этой строке 'Notice: ...' возникает
print $foo->songs[0];
}
catch (Exception $excp) {
print "{$excp->getMessage()}\n";
}
?>
|
при выполнении возникает такая штука: "Notice: Indirect modification of overloaded property Disc::$songs has no effect in...".
не получается почему-то присвоить массиву значение, используя стандартный синтаксис.
подскажите, это я что-то неправильно сделал или это глюк какой-то?
заранее спасибо! | |
|
|