2010-05-17 3 views

ответ

55

Ну, общий способ добавить произвольные свойства к объекту:

$object->attributename = value; 

Вы можете, гораздо чище, предварительно определить атрибуты в классе (PHP 5 + конкретные, в PHP 4 вы должны использовать старый var $attributename)

class baseclass 
{ 

    public $attributename; // can be set from outside 

    private $attributename; // can be set only from within this specific class 

    protected $attributename; // can be set only from within this class and 
          // inherited classes 

это настоятельно рекомендуется, потому что вы можете также документировать свойства в определении вашего класса.

Вы также можете определить getter and setter methods, которые вызываются, когда вы пытаетесь изменить свойство объекта.

0

это статический класс, но тот же принцип будет и для интеллигентного. Это позволяет хранить и извлекать все, что вы хотите от этого класса. и выдает ошибку, если вы пытаетесь получить что-то, что не установлено.

class Settings{ 
    protected static $_values = array(); 

public static function write($varName, $val){ 
    self::$_values[ $varName ] = $val; 
} 
public static function read($varName){ 

    if(!isset(self::$_values[ $varName ])){ 
     throw new Exception($varName . ' does not exist in Settings'); 
    } 

    return self::$_values[ $varName ]; 
} 
} 
Смежные вопросы