Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Помогите разобраться
Форумы портала PHP.SU » » Вопросы новичков » Помогите разобраться

Страниц (1): [1]
 

1. loleg - 26 Января, 2018 - 22:09:55 - перейти к сообщению
Почему работает такой код:
CODE (htmlphp):
скопировать код в буфер обмена
  1. class My {
  2.     public static $prop = 'prop value';
  3. }
  4. $obj = new My;
  5. var_dump($obj); //object(My)#1 (0) {}
  6. $obj1 = new $obj;
  7. var_dump($obj1); // object(My)#2 (0) {}
  8. print $obj::$prop; // prop value
  9.  
2. Sail - 27 Января, 2018 - 19:57:28 - перейти к сообщению
loleg, так задумано.
(Об этом случае - в примере #5)
3. jonston - 31 Января, 2018 - 08:16:03 - перейти к сообщению
loleg пишет:
Почему работает такой код:
CODE (htmlphp):
скопировать код в буфер обмена
  1. class My {
  2.     public static $prop = 'prop value';
  3. }
  4. $obj = new My;
  5. var_dump($obj); //object(My)#1 (0) {}
  6. $obj1 = new $obj;
  7. var_dump($obj1); // object(My)#2 (0) {}
  8. print $obj::$prop; // prop value
  9.  


Потому, что это статическое свойство.Оно доступно только в статическом контексте, то есть в контексте самого класса, а не экземпляра класса.
4. Sail - 31 Января, 2018 - 19:43:19 - перейти к сообщению
jonston, где-то в вопросе есть частица "не"?

 

Powered by ExBB FM 1.0 RC1