Глобальные переменные на Php
Есть необходимость сделать массив видимым на протяжении всей работы. Тоесть сделать его глобальным. Создаю его на одной странице а можно его видеть и на другой. Пробовал его передать как <страница>.php?arr=$arry но далее это arr конечно видно но непонятно что это за переменная, тоесть по echo ("$arr") на <страница> ничего не выводится.
Цитата:
Originally posted by tot
Есть необходимость сделать массив видимым на протяжении всей работы. Тоесть сделать его глобальным. Создаю его на одной странице а можно его видеть и на другой. Пробовал его передать как <страница>.php?arr=$arry но далее это arr конечно видно но непонятно что это за переменная, тоесть по echo ("$arr") на <страница> ничего не выводится.
Есть необходимость сделать массив видимым на протяжении всей работы. Тоесть сделать его глобальным. Создаю его на одной странице а можно его видеть и на другой. Пробовал его передать как <страница>.php?arr=$arry но далее это arr конечно видно но непонятно что это за переменная, тоесть по echo ("$arr") на <страница> ничего не выводится.
Используй сессии.
Цитата:
Originally posted by 3D Bob
Используй сессии.
Используй сессии.
А можно еще инклюдить файл, где обозначен этот массив. Это подходит, если инклюдишь конфигурационный файл, где есть массив с параметрами, типа $_CONFIG['DB_USER']='..'... и тд и тп.
Если не это, то тогда либо через сессии, либо как вариант используй serialize.
Цитата:
Originally posted by kasap
А можно еще инклюдить файл, где обозначен этот массив. Это подходит, если инклюдишь конфигурационный файл, где есть массив с параметрами, типа $_CONFIG['DB_USER']='..'... и тд и тп.
Если не это, то тогда либо через сессии, либо как вариант используй serialize.
А можно еще инклюдить файл, где обозначен этот массив. Это подходит, если инклюдишь конфигурационный файл, где есть массив с параметрами, типа $_CONFIG['DB_USER']='..'... и тд и тп.
Если не это, то тогда либо через сессии, либо как вариант используй serialize.
А что такое serialize. И можно про инклуды пример
$a['name']='Вася';
$a['surname']='Пупкин';
делаешь $b=serialize($a) и он создаст в $b строку, где будет записан весь этот массив (в строковом формате - string). Очень удобно для хранения информации, например в бд. В нужный момент считываешь эту строку и делаешь $a=unserialize($b) и у тебя получается опять тот массив, который и был ранее.
Пример с инклудом:
Файл include_me.php
$a['name']='Вася';
$a['surname']='Пупкин';
Файл index.php
include "include_me.php";
echo $a['name'];
Т.е. все настройки хранишь в массиве в файле include_me.php и где надо инклюдишь этот файл и используешь элементы этого массива. Минус в том, что програаммно менять какие-либо элементы массива будет трудно (придется целый обработчик писать). Тогда-то тебе на помощь и придет serialize. ЧТобы не писать такой никому не нужный обработчик просто сохраняешь свой массив в текстовой строке и получается, что вся работа с файлами будет сводиться только к тому, чтобы взять/положить строку, а работать с самим этим массивом настроек ты будешь как с обычным массивом. Иногда бывает удобно.
Сериализованный массив будет выглядеть так:
a:2:{s:4:"name";s:4:"Вася";s:7:"surname";s:6:"Пупкин";}
Т.е. он сохранил все элементы массива и форматы в которых они записаны в одной строковой переменной, которую потом хоть куда можно положить и хранить. Хоть в файл, хоть в базу данных, хоть по ссылке передать.
Кстати механизм сессий как раз сериализацию использует для хранения данных.
Цитата:
Originally posted by tot
А что такое serialize. И можно про инклуды пример
А что такое serialize. И можно про инклуды пример
О serialize читай тут http://ru3.php.net/manual/ru/function.serialize.php
А с инклюдом все очень просто. Создаешь файл с параметрами, например:
Код:
<?
# параметры подключения к БД
$_CONFIG['DB_HOST'] = 'localhost'; #хост для подключения
$_CONFIG['DB_NAME'] = 'base'; # имя БД
$_CONFIG['DB_USER'] = 'pupkin_vasya'; # юзер под которым происходит коннект
$_CONFIG['DB_PASS'] = 'blablabla'; # пароль
# ==========================================
?>
# параметры подключения к БД
$_CONFIG['DB_HOST'] = 'localhost'; #хост для подключения
$_CONFIG['DB_NAME'] = 'base'; # имя БД
$_CONFIG['DB_USER'] = 'pupkin_vasya'; # юзер под которым происходит коннект
$_CONFIG['DB_PASS'] = 'blablabla'; # пароль
# ==========================================
?>
Далее его просто инклюдишь где надо.
Код:
<?
require_once('config.php');
?>
require_once('config.php');
?>
И потом в скрипте просто используешь этот массив для своих нужд.
Код:
<?
$con=mysql_connect($_CONFIG['DB_HOST'], $_CONFIG['DB_USER'], $_CONFIG['DB_PASS']);
?>
$con=mysql_connect($_CONFIG['DB_HOST'], $_CONFIG['DB_USER'], $_CONFIG['DB_PASS']);
?>
Все просто. :)
Цитата:
Originally posted by kasap
О serialize читай тут http://ru3.php.net/manual/ru/function.serialize.php
А с инклюдом все очень просто. Создаешь файл с параметрами, например:
Далее его просто инклюдишь где надо.
И потом в скрипте просто используешь этот массив для своих нужд.
Все просто. :)
О serialize читай тут http://ru3.php.net/manual/ru/function.serialize.php
А с инклюдом все очень просто. Создаешь файл с параметрами, например:
Код:
<?
# параметры подключения к БД
$_CONFIG['DB_HOST'] = 'localhost'; #хост для подключения
$_CONFIG['DB_NAME'] = 'base'; # имя БД
$_CONFIG['DB_USER'] = 'pupkin_vasya'; # юзер под которым происходит коннект
$_CONFIG['DB_PASS'] = 'blablabla'; # пароль
# ==========================================
?>
# параметры подключения к БД
$_CONFIG['DB_HOST'] = 'localhost'; #хост для подключения
$_CONFIG['DB_NAME'] = 'base'; # имя БД
$_CONFIG['DB_USER'] = 'pupkin_vasya'; # юзер под которым происходит коннект
$_CONFIG['DB_PASS'] = 'blablabla'; # пароль
# ==========================================
?>
Далее его просто инклюдишь где надо.
Код:
<?
require_once('config.php');
?>
require_once('config.php');
?>
И потом в скрипте просто используешь этот массив для своих нужд.
Код:
<?
$con=mysql_connect($_CONFIG['DB_HOST'], $_CONFIG['DB_USER'], $_CONFIG['DB_PASS']);
?>
$con=mysql_connect($_CONFIG['DB_HOST'], $_CONFIG['DB_USER'], $_CONFIG['DB_PASS']);
?>
Все просто. :)
Да вроде бы попонятней стало. ВСЕМ СПАСИБО