Глобальные переменные в php

Среда, 11 августа 2010 г.
Рубрика: PHP программирование -> Функции
Метки:
Просмотров: 1172
Подписаться на комментарии по RSS

Давайте попробуем вывести переменную $a со значением 5:

<?php
$a = 5;
echo $a;

А теперь давайте попробуем прописать в функции переменной $a значение

10:

<?php
$a = 5;
function myfunc () {
    
    $a = 10;   
}
echo $a;

Но почему то у нас выведится 5, а не 10, ответ на вопрос прост - все

переменные которые находятся за функцией называются глобальными - что

значит они используются во всём скрипте, а так как функция является (

подпрограммой ), то и переменные у неё должны быть свои, а именно

локальные, которые будут использоваться в функцие, а теперь давайте

попробуем объявить переменную $a в функцие как глобальную, и изменим её.

Объявление делается при помощи команды global - после которой идут наши

переменные, которые можно будет изменять в функцие, и значения их будут

как в самом скрипте, а именно 5:

<?php
$a = 5;
function myfunc () {
    
    global $a;
    
    $a = 10;   
    
}
myfunc();
echo $a;

Как только мы выполним скрипт у нас на экране появится 10, а теперь

давайте разберём что мы написали

Сначала переменной $a присваиваем значение 5, потом пишем функцию, в

которой объявляем переменную $a как глобальную, что значит теперь у нас в

функцие $a используется со значением 5, и изменив её в функцие мы

изменим её во всём скрипте.

Дальше присваиваем переменной $a значение 10, после вызываем нашу

функцию, тем самым изменяем значение переменной $a с 5 на 10, после

выводим переменную $a.

Примерно так действует команда global, давайте ещё раз объясню:

В функцие используются свои переменные отдельные от всего скрипта, что

значит, если мы в функцие переменной скажем $a присвоим значение 10, а

до этого в скрипте уже была переменная $a со значением 5, то после

вызова функции, мы попробуем вывести переменную $a - то её значение

будет равно 5, а не 10, а всё из-за того что функция является так

называемой подпрограммой, у которой свои переменные - локальные, и они

не относятся ко всему скрипту, а во всём скрипте используются глобальные

переменные, так вот - если мы хотим, чтобы в функцие можно было бы

изменять глобальные переменные, то нам нужна команда global, при помощи

неё мы объявим переменные как глобальные, и можно будет редактировать

переменные во всём скрипте, которые были объявлены нами командой global.

И также можно при помощи аргументов дать понять что эти переменные

глобальные, давайте рассмотрим пример:

<?php
$a = 5;
function myfunc (&$a) {
    
    $a = 10;   
    
}
myfunc($a);
echo $a;

Здесь при помощи значка & - это так называемый указатель - мы даём

понять, что переменная глобальная и переменная локальная ( которая

используется в функцие ) содержат одно и тоже значение - получается что

эти аргументы, являются одной и тойже переменной, и теперь изменив её в

функцие мы изменим её во всём скрипте.

Поделиться...
twitter.com facebook.com vkontakte.ru mail.ru google.com bobrdobr.ru
Комментариев: 1
  1. О что-то новенькое спасибо за информацию!!!

Оставьте свой комментарий!

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

Если вы уже зарегистрированы как комментатор, укажите пароль и свой действующий email.

(обязательно)