Kiev1.org Карта сайта Файлы Фотографии Киева
  
Реклама:






Разделы
 
 Sysadmin
 Антиглобалисты
 Ереси и секты
 Катастрофы
 Компьютерные новости
 Непроверенное
 О проекте
 О фотогалерее
 Политика и власть
 Православие
 Предприятия Украины
 Протесты Людей против нового мирового концлагеря
 Разное
 Россия
 Старец Паисий 1924-1994
 Стояние за Истину
 Суды в Украине
 Тайна беззакония
 экуменизм


Внимание! Читая пророчества на этом сайте помните что достоверность трудно проверить и все может во времени изменяться - самое главное думать своей головой и не верить легкомысленно всему что говорят, особенно советское телевидение
"О дне же том, или часе, никто не знает, ни Ангелы небесные, ни Сын, но только Отец (Мк. 13, 32)"

Переменные в PHP



При использовании переменной переменных с массивами вы столкнетесь с некоторой сложностью. Если вы напишите $$a[1] , то парсер не знает что надо использовать в качестве имени переменной для организации динамического связывания.
students.soros.karelia.ru/~vstas/
Создание переменных
php поддерживает следующие типы:
[integer] [double] [string] [array] [object]
[pdfdoc (если включена поддержка PDF)]
[pdfinfo (если включена поддержка PDF)]

Переменные в PHP помечаются специальным символом : $.
Обычно тип переменной не задается программистом, он определяется самим php в процессе исполнения и может менять контекст в зависимости от использования данной переменной. Для того чтобы самостоятельно предопределять тип переменной используется settype(). Для инициализации переменной в php достаточно просто присвоить ей некоторое значение. Для большинства типов это обычный способ инициализации. Для таких типов как массивы и объекты используют специальные методы инициализации.
Область видимости переменных
Видимость переменных определяется исходя их того где переменная была определена (инициализирована). В большинстве случаев php переменный имеют только одну область видимости, блок кода где они были определены. При использовании функций определяемой пользователем это хорошо иллюстрируется. Любая переменная оределенная внутри функции по умолчанию имеет область видимости в пределах данной функции.
Пример:на локальную видимость

$a = 1; /* глобальная видимость */

function Test () {
echo $a; /* локальная видимость */
}

Test ();



Результат:
Кусок данного кода не выдаст на экран ничего, так как функция пытается вывести переменную которой не присвоено значение (она локальная). Здесь вы можете заметить отличие от языка СИ, где объявленные глобальные перменные становятся видимыми в теле функции автоматически. Обычно это приводило к некоторым ошибкам. В PHP если вы хотите использовать глобальные переменные, то должны это явно указывать.
Пример:на глобальную видимость


$a = 1;
$b = 2;

function Sum () {
global $a, $b;

$b = $a + $b;
}

Sum ();
echo $b;


Результат:
На экран будет выведен ответ 3.
Пример:глобальную видимость ($GLOBALS)


$a = 1;
$b = 2;

function Sum () {
$GLOBALS["b"] = $GLOBALS["a"] + $GLOBALS["b"];
}

Sum ();
echo $b;



Результат:
На экран будет выведен ответ 3. Это еще один способ для доступа к глобальным переменным. Используется предопределенный ассоциативный массив $GLOBALS. Как видно из примера, в ассоциативном массиве $GLOBALS ключом является имя переменной, а значение этой переменной равно значению этого элемента в массиве.
Переменные переменных
В php довольно часто используют механизм динамического связывания имени переменной с ее значением - используют переменные переменных.
Обычная переменная имеет статическое имя: $a="hello";
А переменная переменной указывает на значение переменной имеющей имя хранимое в переменной переменной. Например(продолжая наш пример):$$a="world";
Для обозначения переменной переменной используют знак $$.(смысл такого обозначения вполне понятен) В этиъ двух примерах мы сделали следующее, определили две переменные: $a="hello" и $hello="world".
Пример:переменная переменной


$a="Hallo";
$$a=",World!";
echo "$a ${$a}n";



Результат:
На экране будет написано: Hallo,World!
При использовании переменной переменных с массивами вы столкнетесь с некоторой сложностью. Если вы напишите $$a[1] , то парсер не знает что надо использовать в качестве имени переменной для организации динамического связывания.
Вы можете использовать в качестве источника для имени переменной элемент массива $a[1] или вы захотите уже после динамической подстановки обратиться к первому элементу полученной переменной. В первом случае необходимо писать так: $a{$a[1]}. А во втором случае: ${$a}[1]. Обратите на это внимание, здесь легко запутаться.

Установка и изменение типа у переменной
Как уже было сказано, PHP не требует предварительного описания типа при декларации переменной. Для определения типа переменной используется ее контекст. Скажем вы присвоили переменной строку, т.е тем самым вы установили ее тип - строковым. Рассмотрим некоторые примеры на приведение.
Пример:автоматическое преобразование string(оператор +)


$foo = "0"; // $foo строка (ASCII 48)
$foo++; // $foo все еще строка "1" (ASCII 49)
$foo += 1; // $foo теперь это целое (2)


Результат:
В данном примере видно, как php автоматически при использовании оператора + осуществляет преобразование типов.
Пример:автоматическое преобразование double(оператор +)


$foo = 1; // $foo целое (1)
$foo += 1; // $foo целое (2)
$bar = $foo + 1.3; // $foo по прежнему целое (2) хотя при вычислении
// преобразуется к вещественному типу,
// $bar - вещественное (3.3)
$foo = $foo + 1.3; // $foo вещественное (3.3)


Результат:
В данном примере видно, как php автоматически преобразует типы. Если хоть один операнд вещественный все выражение конвертируется в вещественный тип и результат вычислений также будет вещественный. Важно понять, что все преобразования типов при вычислениях прозрачны и необходимо только в процессе вычисления.
Пример:автоматическое преобразование из string(оператор +)


$foo = 1 + "10.5"; // $foo вещественное (11.5)
$foo = 1 + "-1.3e3"; // $foo вещественое (-1299)
$foo = 1 + "bob-1.3e3"; // $foo целое (1)
$foo = 1 + "bob3"; // $foo целое (1)
$foo = 1 + "10 Small Pigs"; // $foo целое (11)
$foo = 1 + "10 Little Piggies"; // $foo целое (11);
$foo = "10.0 pigs " + 1; // $foo целое (11)
$foo = "10.0 pigs " + 1.0; // $foo вещественное (11)



Результат:
В данном примере видно, как php автоматически при использовании оператора + осуществляет преобразование типов. Когда строка рассматривается как числовое выражение, то преобразование проходит следующим образом: Строка приводиться к вещественному типу если она содержит какие-нибудь из следующих символов: . , e , E. Иначе строка приводиться к целому типу.
Если строка содержит текст, то если начальная часть текста может быть приведена к численному типу, то только этот кусок и участвует в приведении. Переводимым считается текст содержащий знак в начале выражения, далее одна или более цифр,в случае с экспонентой содержит еще "e" или "E" и цифры указывающие порядок. Во всех остальных случаях возвращаемое значение это 0. Обратите внимание на то, что если в вычисляемом выражении строка на первом месте, то приведение типов осуществляется по второму операнду.
Установка типа
Как и в СИ вы можете явно указывать тип и делается это следующим образом. Перед переменной в скобках указывают тип которым данная переменная должна обладать.
Можно указать следующие типы:
(int), (integer) - устанавливает целый тип (int)
(real), (double), (float) - устанавливает вещественный тип (double)
(string) - устанавливает строковый тип
(array) - устанавливает тип массив
(object) - устанавливает тип объект
Пример:установка типа



$foo = 10; // $foo целое
$bar = (double) $foo; // $bar вещественное
$bar = ( double ) $foo; // $bar вещественное



Результат:
В данном примере видно, как можно осуществить принудительное преобразование типов. Надо заметить, что вставленные во внутрь скобок знаки пробелов и табуляции на осуществление преобразование не влияют.
Для работы с типами можно использовать также следующие функции:
intval возвращает целое значение переменной
doubleval возвращается (double) вещественное значение
settype устанавливает тип переменной
strval возвращает строку переменной
intval - возвращает целое значение переменной
описание: int intval(mixed var, int [base]);
Возвращает целое значение для var, используя базу системы исчисления для перевода значения var из base системы исчисления в десятичную. (умолчательное значение равно 10, т.е десятичные числа).
var может быть любого скалярного типа. Вы не можете использовать intval() для массивов и объектов.
doubleval - возвращается (double) вещественное значение
описание: double doubleval(mixed var);
Возвращает (double) вещественное значение с плавающей запятой для переменной var. var может быть любого скалярного типа. Вы не можете использовать doubleval() для массивов и объектов.
settype - устанавливает тип переменной
описание: int settype(string var, string type);
Устанавливает тип type для переменной var.
Возможы следующие типы:
"integer"
"double"
"string"
"array"
"object"
strval - возвращает строку переменной
описание: string strval(mixed var);
Возвращает строку для переменной var.var может быть любого скалярного типа. Вы не можете использовать strval() для массивов и объектов.

Проверка типа у переменной
Для организации проверки типа у используемой переменной используют следующие функции:
gettype возвращает тип переменной
is_array проверка на массив
is_double проверка на вещественный тип
is_float проверка на ещественный тип
is_int проверка на целый тип
is_integer проверка на целый тип
is_long проверка на целый тип
is_object проверка на объект
is_real проверка на вещественный тип
is_string проверка на строковый тип
gettype - возвращает тип переменной
описание: string gettype(mixed var);
Возвращает тип PHP переменной var.
Возможны следующие варианты возвращаемых строк:
"integer"
"double"
"string"
"array"
"object"
"unknown type"
is_array, is_double, is_float, is_int, is_integer, is_long, is_object, is_real, is_string - информационные функции.
описание: int is_array(mixed var);
описание: int is_double(mixed var);
описание: is_float - алиас на is_double
описание: is_int - алиас на is_long
описание: is_integer - алиас на is_long
описание: int is_long(mixed var)
описание: int is_object(mixed var)
описание: is_real - алиас на is_double
описание: int is_string(mixed var)
Данные функции возвращают значение true если переменная var удовлетворяет искомому типу.

Дополнительные функции
empty определяет когда переменная установлена
isset определяет установленно ли у переменной значение
unset очищает переменную
empty - определяет когда переменная установлена
описание: int empty(mixed var);
Возвращает false если переменная var существует и имеет не пустое и не нулевое значение, в противном случае возвращает true.
isset - определяет установленно ли у переменной значение
описание: int isset(mixed var);
Возвращает true если переменная var существует, false в противном случае. Если переменная была очищенна используя unset(), то переменная перестает существовать.
Пример:функция isset и unset



$a = "test";
echo isset($a); // true
unset($a);
echo isset($a); // false



Результат:
В данном примере видно, как работают эти две функции.
unset - очищает переменную
описание: int unset(mixed var);
unset() уничтожает указанную переменную var и возвращает true.
Пример:функция unset


unset( $foo );
unset( $bar['quux'] );


Результат:
В данном примере показан синтаксис применения unset к элементам массива.





 Отсылка письма с аттачем из php скрипта - это то что долго искали!!!
 Безопасность при написании php программ http://bm.org.ru
 HTML Обмен информацией без перезагрузки страницы


Внимание! Читая пророчества на этом сайте помните что достоверность трудно проверить и все может во времени изменяться
"О дне же том, или часе, никто не знает, ни Ангелы небесные, ни Сын, но только Отец (Мк. 13, 32)"