Синтаксис PHP

С основами синтаксиса PHP я надеюсь вы уже знакомы. Следующий код


<?php
echo "Hello, World!";
?>

дает


Hello, World!
Имена переменных обозначаются знаком $. То же самое "Hello, World!" можно получить следующим образом:


<?php
$message = "Hello, World!";
echo $message;
?>
Конкатенация (присоединение) строк осуществляется с помощью . (точки); обычные арифметические операции определяются так, как Вы того и ожидаете:


<?php
$greeting = "Hello ";
$num = 3 + 2;
$num++;
echo "$greeting $num people!";
?>
даст


Hello 6 people!
PHP имеет полный комплект операторов и они работают именно так, как Вы того ожидаете, особенно если у Вас имеется опыт работы с C или C++. При работе с PHP можно придерживаться простого правила: "Если сомневаешься, попробуй: скорее всего оно именно так и работает."

Так же, как и в Perl, строка, заключенная в двойные кавычки, означает, что встречающиеся в этой строке переменные будут заменены их значениями, в то время как если строка заключена в одинарные кавычки, такая замена не производится. Так


<?php
$name = 'Susannah';
$greeting_1 = "Hello, $name!";
$greeting_2 = 'Hello, $name!';
echo "$greeting_1\n";
echo "$greeting_2\n";
?>
даст


Hello, Susannah!
Hello, $name!
Обратите внимание на то, что \n в строке означает переход к новой строке, совсем как в Perl или в C. Однако это работает только в тех строках, которые взяты в двойные кавычки.

Переменные

PHP обеспечивает доступ к переменным окружения как к регулярным переменным (as regular variables), включая переменные окружения, которые установлены сервером для CGI-программ (даже если Вы запустили PHP как модуль). Поэтому, если на странице "http://www.domain.com/farm/cattle/cow-cow.cow.html" содержится PHP-код


<?php
echo "[$REQUEST_URI]";
?>
то на выводимой странице Вы увидите [/farm/cattle/cow-cow-cow.html]

Массивы

Индексы массивов (как обычных, так и ассоциативных) задаются в квадратных скобках ([ и ]):


$fruit[0] = 'banana';
$fruit[1] = 'papaya';
$favorites['animal'] = 'turtle';
$favorites['monster'] = 'cookie';
Если Вы присваиваете какое-то значение элементу массива, не указывая номера элемента (оставляете поле индекса пустым), PHP присоединяет объект к концу массива. Так для приведенного выше примера с массивом $fruit можно достичь того же самого результата, написав:


$fruit[] = 'banana';
$fruit[] = 'papaya';
Вы можете также применять многомерные массивы:


$people['David']['shirt'] = 'blue';
$people['David']['car'] = 'minivan';
$people['Adam']['shirt'] = 'white';
$people['Adam']['car'] = 'sedan';
Создать массив можно также путем вызова функции array():


$fruit = array('banana','papaya');
$favorites = array('animal' => 'turtle',
'monster' => 'cookie);
или


$people = array ('David' => array('shirt' => 'blue',
'car' => 'minivan'),
'Adam' => array('shirt' => 'white',
'car' => 'sedan'));
Встроенная функция count() выдает число элементов в массиве.


$fruit = array('banana','papaya');
print count($fruit);
выдаст


2
Управляющие конструкции

Вы можете использовать операторы цикла, такие как for и while. В результате выполнения оператора


for ($i = 4; $i < 8; $i++) {
print "I have eaten $i bagels today.\n"; }
получим


I have eaten 4 bagels today.
I have eaten 5 bagels today.
I have eaten 6 bagels today.
I have eaten 7 bagels today.
Тот же самый результат даст


$i = 4; while ($i < 8) {
print "I have eaten $i bagels today.\n";
$i++;
}
Вы можете также использовать конструкции с if и elseif:


if ($user_count > 200) {
print "Сайт сейчас перегружен!";
} elseif ($user_count > 100) {
print "Сайт активно используется!";
else {
print "Сайт свободен - подключились только $user_count пользователей.";
}
Сформулированное выше правило "Пробуй!" вполне применимо и в части управляющих конструкций. Вы можете использовать конструкции с switch, do...while и даже ?:.