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. azarkin7 - 24 Июня, 2011 - 21:47:55 - перейти к сообщению
Всем ку, скажите плз в чем отличие от операторов присвоения глобной видимости global и $GLOBALS['name'].Что лучше использовать?.Спасибо
2. altermann - 24 Июня, 2011 - 22:20:36 - перейти к сообщению
Как я понял ничем. Объявляя переменную $var как global в функции вы ссылаетесь на переменную $GLOBALS['var']
3. OrmaJever - 24 Июня, 2011 - 22:22:46 - перейти к сообщению
глобальные переменые вобще лутше не использовать, и без них можно обойтись.
4. azarkin7 - 24 Июня, 2011 - 22:28:50 - перейти к сообщению
то я что то запутался между ними...а также и со static запутался...
5. altermann - 24 Июня, 2011 - 22:41:16 - перейти к сообщению
Переменная объявленная в функции или методе класса кака global является ссылкой на переменную из глобальной области видимости, т.е. $GLOBALS[].
А static это только для классов, позволяет обратится к переменной или методу класса не создавая объект, т.е не
PHP:
скопировать код в буфер обмена
  1. $oUsers = new Users();
  2. $aList = $oUsers->getList();

, а
6. OrmaJever - 24 Июня, 2011 - 22:41:27 - перейти к сообщению
а что со static не понятно? Глобальные переменые отложите они особо не понадобятся.
7. DeepVarvar - 25 Июня, 2011 - 01:10:14 - перейти к сообщению
altermann пишет:
А static это только для классов

Неверно.
Статик используется и для функций.
PHP:
скопировать код в буфер обмена
  1. function test() {
  2.   static $a = true;
  3.   if ($a) {
  4.     echo "Истина!<br />";
  5.     $a = false;
  6.     }
  7.   else echo "Ложь!<br />";
  8.   }
  9.  
  10. // и запустим ф-цию разков пять :)
  11.  
  12. test();
  13. test();
  14. test();
  15. test();
  16. test();

Выведет:

Истина
Ложь
Ложь
Ложь
Ложь

Если простым языком, то:
Переменная которая объявлена как static в теле ф-ции,
сохраняет свое значение после завершения ф-ции.
Что собственно и доказывает приведенный пример.
8. azarkin7 - 25 Июня, 2011 - 09:02:21 - перейти к сообщению
спасибо
9. LEONeso - 25 Июня, 2011 - 13:47:52 - перейти к сообщению
просьба удалить пост: ошибочно введено

 

Powered by ExBB FM 1.0 RC1