Наши партнеры

UnixForum






Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

Введение в PHP

By Adam Trachtenberg and David Sklar  (8/3/99)
Перевод на русский язык Н.В.Костроминой (30.11.2000 г.).

Синтаксис 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 и даже ?:.

К началу страницы Простая форма


David Sklar is the CTO of Student.Net Publishing.
Adam Trachtenberg is the Vice President for Production of Student.Net Publishing.