php5 static method

2 отговора 199 прегледа
#1

php5 static method

Имам следното:

class Bar
{
public static $my_static = 'bar';

public static function staticValue() {

return 'foo';

}

}

$bar = new Bar();
print $bar->staticValue();


Немога да разбера , защо това печати foo при мен, предвид това:

"A member or method declared with static can not be accessed with a variable that is an instance of the object and cannot be re-defined in an extending class."

Отговор
в отговор на rdx9 #2

Re: php5 static method

В момента има рaзминавaне между документцията и кода на PHP5. Смисълa на static е да даде _допълнителната_ възможност една функция да се вика в стaтичен контекст (без $this). Т.е. static не е ограничение, а допълнителна възможност за static функциите. Не знам защо е реализирано така но в кода на PHP5 си личи ясно че е преднамерено направено.

Отговор
в отговор на rdx9 #3

Re: php5 static method

Във всички обектно ориентирани езици е така, за статичен метод не ти трябва обект, но и с обект става.

Така, че нормално и в php да го направят, да не се бърка народа.

Отговор