С чего начинается Родина? (основы языка).
С картинки в родном букваре ;) то есть с чтения (или
хотя бы просмотра) документации. Не пугайтесь. В конце - концов,
если вы собираетесь работать на 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 комментарий
?>
ТИПЫ
Преобразование типов происходит следующим образом.
Если переменной приравнивается строка (текст в кавычках) то эта
переменная становится строковой. Если-жы с ней совершается одна из
многих математических функций или она приравнивается численной
переменой, она становится численной, причем если приравнивается не
целому значению - то станет типом 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
К стати, определить тип переменной можно функциями
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.