PHP ШАГ 3. С чего начинается Родина?

Автор: Topol Вторник, Апрель 17th, 2012 Нет комментариев

Рубрика: Программирование

С картинки в родном букваре ;) то есть с чтения (или хотя бы просмотра) документации. Не пугайтесь. В конце — концов, если вы собираетесь работать на php вам когда-либо все равно придется заглянуть туда, и лучше, если вы это сделаете сейчас, благо мануал у php очень удобный, легкий, не требующий длительного штудирования, но основы языка нужно знать и без чтения тут никак не обойтись.

Вообще я потратил не мало времени за написанием скриптов на php и если это время можно измерить сотнями часов, то время, потраченное на поиск нужных функций или решение проблем с осуществлением каких-либо специфических операций, в общем время просиженной за документаций, как ни странно, не более одного часа! Так что еще раз повторю — не пугайтесь и флаг (очки) вам в руки.

Начнем с того, что для PHP сущестует 4-е способа отделения его от общего кода HTML (имеется ввиду для интерпретации)

1. <? echo («SGML инструкции\n»); ?>

2. <?php echo(«XML документ\n»); ?>

3. <script language=»php»>

echo («специально для FrontPage»);

</script>

4. <% echo («ASP-стиль»); %>

<%= $variable; # Комментарий «<%echo ..» %>

Далее необходимо коненчо сказать и о том, что инструкции в PHP отделяются друг от друга сишно-паскалевско-перловым способом — точкой с запятой. Хотя перед закрывающим тегом (?>) точку с запятой ставит не обязательно.

<?php echo «This is a test»;

echo «This is a test also» ?>
PHP поддерживает комментарии в стиле ‘C’, ‘C++’ и Unix shell. Например:

<?php

echo «test»; // Комментарий в стиле C++

/* Это многострочный

комментарий в стиле C++*/

echo «test2″;

echo «Test3″; # Это unix-shell комментарий

?>
ТИПЫ
PHP поддерживает следующие типы данных:
integer (целочисленные)
floating-point numbers или double (числа с плавающей запятой)
string (строки, текст)
array (массивы)
object (обьекты)
Преобразование типов происходит следующим образом. Если переменной при равнивается строка (текст в кавычках) то эта переменная становится строковой. Если-жы с ней совершается одна из многих математических функций или она приравнивается численой переменой, она становится численной, причем если приравниваетс яне целому значению — то станет типом double. Пример:

$foo = «0″; // $foo строка (ASCII 48)
$foo++; // $foo тоже строка «1″ (ASCII 49)
$foo += 1; // $foo теперь integer (2)
$foo = $foo + 1.3; // $foo теперь double (3.3)
$foo = 5 + «10 паросят»; // $foo теперь снова integer (15)
$foo = 5 + «10 ящиков»; // $foo и по прежнему integer (15)
значение в скобках — результирующее значение переменной

Преобразовывать типы можно чистА в сишном стиле:

$foo = 10; // $foo это integer
$bar = (double) $foo; // $bar это double

Разрешенный преобразования:
(int), (integer) — cast to integer
(real), (double), (float) — cast to double
(string) — cast to string
(array) — cast to array
(object) — cast to object
К стати, определить тип переменной можно функциями gettype(), is_long(), is_double(), is_string(), is_array() и is_object().

ОБЛАСТЬ ВИДИМОСТИ ПЕРЕМЕННЫХ
Во-первых. Все переменные начинаются с символа $

Во-вторых существуют границы определения переменных. Например что-бы использовать глобальные переменные в функциях, необходимо их сначала декларировать как глобальные, иначе вы будете исопльзовать локальные переменные. Поясню на примере:

$a = 1; /* глобальное определение */
Function Test () {
$a=2;
echo $a; /* локальная переменная */
}
Test ();
echo $a;

Таким образом в функции используется локальная, собственная переменная и результатом прогарммы будет вывод чисел 2 и 1, а не 2 и 2, как некоторые могли подумать.

Ну а если вы хотите в функции использовать глобальные переменные, необходимо сделать так (декларировать с помощью оператора global):

$a = 1; /* глобальное определение */
Function Test () {
global $a;
$a=2;
echo $a; /* локальная переменная */
}
Test ();
echo $a;

Теперь в функции вы переопредилили глобальную переменную и вывод будет числа 2 и 2. Но есть и другой способ добраться до глобально-определенных данных — через ассоциативный массив $GLOBALS[]. Пример предыдущей программы, реализованный новым способом:

$a = 1; /* глобальное определение */
Function Test () {
$GLOBALS["a"]=2;
echo $a; /* локальная переменная */
}
Test ();
echo $a;

Обратите внимание переменная в массиве указывается без символа $

Кроме этог о PHP предоставляет возможность исопльзовать статические переменный. Все как в C/C++.

Function Test () {
static $a = 0;
echo $a;
$a++;
}
Test();
Test();
Test();

Результатом выполнения этого скрипта будет вывод чисел 0,1 и 2.

ПЕРЕМЕННЫЕ ПЕРЕМЕННЫЕ
Скорее всего скоро вам понадобятся переменныес динамически (в ходе работы скрипты) изменяемым наименованием. Поясню на пример, что я имею ввиду:

$a = «hello»; $$a = «world»;

Данная запись означает, что переменной с именем a мы присваиваем значение «hello». Следующей операцией переменной с именем, хранящимся в переменной с именем a, то есть — переменной hello мы присваиваем занчение «world»

echo «$a ${$a}»;

тоже самое, что и

echo «$a $hello»;

В результаты мы получим на экране hello world

Дело ненмого усложняется, если вы хотите использовать подобные массивы. Ведь если вы запишете $$a[1] — интерпретатору надо будет знать, что использовать в качестве переменной — $a или $$a (имя, зранящееся в $a). В таком случаем вам прийдется исопльзовать следующий синтаксис — ${$a[1]} в случае, если вы хотите использовать переменную с именем, зранящимся в массиве $a с индексмо 1 и ${$a}[1] в другом случае (если вы хотите использовать элемент 1 массива с именем, зранящимся в переменной $a.

Источник: woweb.ru

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

Чтобы оставлять комментарии Вы должны быть авторизованы.

Похожие посты