Большие и сложные сценарии обычно состоят из не одного десятка файлов, включающих друг друга. Поэтому в скриптах приходится встречать неоднократное применение инструкций include и require. При этом возникает проблема: становится довольно сложно контролировать, как бы случайно не включить один и тот же файл несколько раз (что чаще всего приводит к ошибке).
Инструкция require_once работает точно так же, как и require, но за одним важным исключением. Если она видит, что затребованный файл уже был ранее включен, то ничего не делает.
Инструкция inciude_once работает совершенно аналогично, но в случае невозможности найти включаемый файл работа скрипта продолжается, а не завершается немедленно.
В РНР существует еще масса других инструкций:
function — объявление функции;
class — объявление класса;
var, private, static, public — определение свойства класса;
throw — генерация исключения;
try-catch — перехват исключения
1. Дан номер некоторого года (положительное целое число). Вывести число дней в этом году, учитывая, что обычный год насчитывает 365 дней, а високосный — 366 дней. Високосным считается год, делящийся на 4, за исключением тех годов, которые делятся на 100 и не делятся на 400 (например, годы 300, 1300 и 1900 не являются високосными, а 1200 и 2000 — являются).
2. Арифметические действия над числами пронумерованы следующим образом: 1 — сложение, 2 — вычитание, 3 — умножение, 4 — деление. Дан номер действия и два числа A и B (В не равно нулю). Выполнить над числами указанное действие и вывести результат.
3. Дано вещественное число A (> 1). Вывести наибольшее из целых чисел N, для которых сумма 1 + 1/2 + ... + 1/N будет меньше A, и саму эту сумму. Задачу решить с помощью цикла for и переписать цикл for с помощью цикла while.
Одной из основных и часто встречающихся структур для хранения данных являются массивы. Массив представляет собой индексированную совокупность переменных одного типа. Каждая переменная или элемент массива имеет свой индекс, т. е. все элементы массива последовательно пронумерованы от 0 до N, где N —размер массива.
Существует два метода создания одномерных массивов: простое присвоение значений элементам массива и использование конструкции array ().
//Создание одномерного массива присвоением значений его элементам
<?php
$number[] ="10";
$number[]= "15";
$number[] = "20";
echo($number[0]) ;
?>
В результате выполнения этого скрипта будет выведена цифра 10, т.к. индексация массивов в РНР начинается с 0.
Посмотреть всю структуру массива сразу можно с помощью функции print_r()
// Вывод структуры массива функцией print_r()
<?php
$number[] ="10";
$number[] ="15";
$number[] ="20";
print_r($number);
?>
В этом случае будет выведена структура всего массива:
Array
(
[0] => 10
[1] => 15
[2] -> 20
)
Индекс элементов массива можно указывать и явно.
//Использование явного указания индекса элементов массива
<?php
$number[2] ="10";
$number[0] ="15";
$ number [5]="20";
print_r($number);
?>
В этом случае, запросив вывод значений элементов массива, мы получим следующий результат:
Array
(
[0] => 15
[2] => 10
[5] -> 20
)
Если при объявлении элементов массива смешиваются переменные с явной индексацией и без индексации, то тому элементу, индекс которого не задан, РНР присвоит первый доступный индекс, после самого большего использованного до сих пор индекса. Например, если мы создадим массив с элементами, индексы которых будут равны, скажем, 5, 10 и 100, а потом создадим элемент, индекс которого явно не укажем, то ему автоматически присвоится индекс 101.
Второй способ определения массивов состоит в использовании конструкции array()
// Использование конструкции array()
<?php
$number = array("10","15","20");
echo($number[1]); // выводит число 15
?>
Для явного указания индексов применяется оператор =>
$number = array("15",5 => "1","7","12");
Индексами массива в РНР могут быть не только числа, но и строки, в этом случае массив называется ассоциативным, а индексы — ключами