Язык программирования PHP | страница 30
Условные операторы на require() не влияют. Хотя, если строка, в которой появляется этот оператор, не исполняется, то ни одна строка кода из вставляемого файла тоже не исполняется. Циклы также не влияют на require(). Хотя код, содержащийся во вставляемом файле, является объектом цикла, но вставка сама по себе происходит только однажды.
В реализациях PHP до версии 4.0.2 использование require() означало, что интерпретатор обязательно попытается прочесть вставляемый файл.
require, как и include, при использовании внутри условных блоков нужно заключать в фигурные скобки.
Решение задачи
И наконец, вернемся к задаче, сформулированной в начале лекции. Мы хотим создать программу, которую можно было бы использовать для отправки писем (или просто для их генерации) с приглашениями на различные мероприятия множеству пользователей. В предыдущей лекции уже рассматривался подобный случай. Сейчас мы вынесем всю информацию о людях и событиях в отдельный файл data.php и напишем программу, не зависящую (ну, может, совсем чуть-чуть зависящую) от этой информации и ее структуры. В этом случае для того, чтобы, например, расширить список адресатов, не нужно будет изменять скрипт, генерирующий приглашения. Кроме того, можно будет использовать информацию о людях и событиях в других скриптах. В самом скрипте, генерирующем приглашения letters.php, мы использовали условные операторы, циклы, require и другие изученные ранее конструкции.
>
>define("SIGN","С уважением, Вася");
>// пусть наша подпись
>// будет константой
>// информация о событиях
>$events = array(
> "f" => "день открытых дверей",
> "o" => "открытие выставки",
> "p" => "бал выпускников");
>// имеющаяся информация о людях
>// (имя и электронный адрес)
>$people = array(
> "ivan" => array(
> "name" => "Иван Иванович",
> "email"=>"user_ivan@intuit.ru"),
> "pit" => array(
> "name" => "Петр Петрович",
> "email" => "user_petr@intuit.ru"),
> "semen" => array(
> "name" => "Семен Семенович"));
>// кто куда приглашается
>$who_where["ivan"] = "o" ;
> // Иван – на выставку
>$who_where["pit"] = "p";
> // Петр – на бал
>?>
>
>require("data.php");
> // включаем файл с данными о событиях
>foreach($people as $key => $man_info){
> // для каждого человека делаем следующее:
>$event_key = $who_where[$key];
> // получаем событие,
> // на которое он приглашается
>if ($event_key<>""){
> foreach($man_info as $key1 => $info){
> // получаем имя и email