Помощник
|
"Новичковый" вопрос по php |
NetGod
|
Сообщение
#1
|
||
|
|
||
|
|||
Webmaster_hb |
28.9.2008, 13:16;
Ответить: Webmaster_hb
Сообщение
#2
|
|
RTFM
Область видимости переменной
Область видимости переменной - это среда, в которой она определена. В большинстве случаев все переменные PHP имеют единую область видимости. Эта единая область видимости охватывает также включаемые (include) и требуемые (require) файлы. Например: <?php $a = 1; include "b.inc"; ?> Здесь переменная $a будет доступна внутри включенного скрипта b.inc. Однако, внутри определенных пользователем функций вводится локальная область видимости функции. Любая, используемая внутри функции переменная, по умолчанию ограничена локальной областью видимости функции. Например: <?php $a = 1; /* глобальная область видимости */ function Test() { echo $a; /* ссылка на переменную локальной области видимости */ } Test(); ?> Этот скрипт не сгенерирует никакого вывода, поскольку выражение echo указывает на локальную версию переменной $a, а в пределах этой области видимости ей не не было присвоено значение. Возможно вы заметили, что это немного отличается от языка C в том, что глобальные переменные в C автоматически доступны функциям, если только они не были перезаписаны локальным определением. Это может вызвать некоторые проблемы, поскольку люди могут нечаянно изменить глобальную переменную. В PHP, если глобальная переменная будет использоваться внутри функции, она должна быть объявлена глобальной внутри нее. Ключевое слово global Сначала пример использования global: Пример 12.1. Использование global <?php $a = 1; $b = 2; function Sum() { global $a, $b; $b = $a + $b; } Sum(); echo $b; ?> Вышеприведенный скрипт выведет "3". После определения $a и $b внутри функции как global все ссылки на любую из этих переменных будут указывать на их глобальную версию. Не существует никаких ограничений на количество глобальных переменных, которые могут обрабатываться функцией. Второй способ доступа к переменным глобальной области видимости - использование специального, определяемого PHP массива $GLOBALS. Предыдущий пример может быть переписан так: Пример 12.2. Использование $GLOBALS вместо global <?php $a = 1; $b = 2; function Sum() { $GLOBALS["b"] = $GLOBALS["a"] + $GLOBALS["b"]; } Sum(); echo $b; ?> $GLOBALS - это ассоциативный массив, ключом которого является имя, а значением - содержимое глобальной переменной. Обратите внимание, что $GLOBALS существует в любой области видимости, это объясняется тем, что этот массив является суперглобальным. Ниже приведен пример, демонстрирующий возможности суперглобальных переменных: Пример 12.3. Суперглобальные переменные и область видимости <?php function test_global() { // Большинство предопределенных переменных не являются // "супер" и чтобы быть доступными в локальной области // видимости функции требуют указания 'global'. global $HTTP_POST_VARS; echo $HTTP_POST_VARS['name']; // Суперглобальные переменные доступны в любой области // видимости и не требуют указания 'global'. // Суперглобальные переменные доступны, начиная с PHP 4.1.0 echo $_POST['name']; } ?> |
|
|
Exterior |
28.9.2008, 13:25;
Ответить: Exterior
Сообщение
#3
|
|
[php]<?php
$my_var = 1; function my_function($my_var2) { $my_var2++; return $my_var2; } echo my_function($my_var); // вернет 2 ?>[/php] |
|
|
NetGod
|
Сообщение
#4
|
|
Webmaster, То есть в функции global $my_var; это не объявление переменной, а указание на то, что будет использоваться переменная из глобального пространства имен?
|
|
|
Webmaster_hb |
28.9.2008, 23:21;
Ответить: Webmaster_hb
Сообщение
#5
|
|
|
ага
|
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
Хостинг "Hostland" - качественный хостинг по разумным ценам и со своей Панелью Управления | 0 | artmeteor | 580 | 18.4.2024, 22:46 автор: artmeteor |
|
⭐⭐⭐ Google Voice | Gmail - OLD аккаунты "SMS и звонки" ⭐⭐⭐ | 15 | Chekon | 4470 | 18.4.2024, 12:00 автор: Chekon |
|
✅ sms.chekons.com - ⭐ Сервис для получения SMS на реальные номера USA "Non-VoIP, безлим SMS, API" ⭐ Сервис для получения SMS на реальные номера USA |
13 | Chekon | 4100 | 18.4.2024, 11:48 автор: Chekon |
|
Требуется помощь по сайту на "ВордПресс" Закрылся доступ в панель администратора |
15 | Tia2 | 2393 | 17.4.2024, 0:54 автор: diviner99 |
|
Опрос: Результаты в упражнении "Жим лёжа" у вэбмастеров | 35 | Room | 4534 | 13.3.2024, 13:10 автор: Room |
Текстовая версия | Сейчас: 25.4.2024, 20:33 |