2013-04-11 2 views
1

предположим, у меня есть класс, как так:Статические и динамические методы в пределах того же PHP класс

class ClassA{ 

    var $var = 'a1'; 
    static $static_var = 'a2'; 

    function get(){ 
     return $this->var; 
    } 

    static function get_static(){ 
     return self::$static_var; 
    } 

} 

Что происходит в памяти, когда я называю это:

$class = new ClassA(); 
echo $class->get(); 

А также то, что происходит, когда я звоню это:

echo ClassA::get_static(); 

Когда я создаю экземпляр ClassA, что происходит со статическими членами класса? Это занимает больше памяти? Он игнорирует статические элементы?

Я хочу сохранить кучу статических функций в пределах ClassA, но я также хочу создать экземпляры ClassA. Должен ли я отделять статические элементы от динамических членов?

ответ

1

Я хочу сохранить кучу статических функций в ClassA, но также хочу создавать экземпляры ClassA. Должен ли я отделять статические элементы от динамических членов?

Ответ: Статические члены, потребляющие память один раз за за класс. Регулярные члены класса, потребляющие память один раз на экземпляр

+0

поэтому, когда я создаю 1000 экземпляров ClassA, у меня есть 1000 копий переменной '$ var' и всего одна копия' $ static_var'? – user2103849

+0

да, точно! .. – hek2mgl

+0

Я просто хотел знать, повлияли ли статические члены на то, сколько памяти занимает экземпляр класса. я думаю, это отвечает на мой вопрос – user2103849

Смежные вопросы