Главная > Программирование > РНР: настольная книга программиста
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

Глава 11. Выражения в PHP

В РНР почти все является выражениями. Простейший и наиболее точный способ определить выражение — это «что-то, имеющее значение», например константы и переменные. Когда вы набираете $а=5, вы присваиваете значение 5 переменной $а.

После этого, если вы напишете $b = $а, вы будете ожидать того же, как если бы вы написали $b = 5. Другими словами, $b это также выражение со значением 5. Если все написано правильно, то именно так оно и случится. Как таковые выражения встречаются практически в каждой строке документированного кода. В данной главе рассмотрим основные аспекты использования выражений.

Выражения могут быть так различны, что иногда это может вас запутать. Есть много способов, которыми можно описать то или иное действие. И так, как вам это удастся сделать, будет работать и ваш скрипт. Например, чтобы заменить в текстовом поле $text нажатие клавиши «Enter» натег <br>, а главное, чтобы все было в одну строчку, необходимо воспользоваться следующей строкой:

$text=ereg_replace ("\n", "<br>", $text);

И для этого совсем не нужно пользоваться функцией nl2br.

В этой главе вы все это подробно изучите, а также мы приведем несколько примеров, направленных на конкретную поставленную задачу:

• примеры выраженийфункций;

• скалярные и нескалярные выражения;

• регулярные выражения РНР и выражения присваивания;

• выражения сравнения;

• совмещенныевыражения;

• выражения условных операторов;

• логические значенижыражений;

• пример счетчика посещений на РНР.

11.1. Примеры выражений функций

Представьте себе программу, состоящую из большого числа подпрограмм. Чтобы выполнить подпрограмму в самой программе, надо при этом возвратить значение переменной, т. е. результат самой работы фикции. Функции являются более сложными примерами выражений. Например:

function mynew() {

    return 5;

}

Предположим, что вы знакомы с концепциями функции (см. ч. 4), вы считаете, что $с = mynew() практически то же самое, что $с = 5, и вы правы. Функции — это выражения с тем значением, которое они возвращают. Так как mynew() возвращает 5, значение выражения mynew() — 5.

Приведем пример, показывающий работу функции.

Пример 11.1. Функция return

<?

$а = 5;

function mynew() {

    $name = 5;

    $а = $name + 5;

    return $a;

}

$а = mynew();

echo $a;

?>

Функция mynew() работает с переменными $а, $name. Что конкретно выполняет данная функция, можно понять по строчке $а = $name + 5; — именно в этой строчке значение переменной $а будет равно 10. После этого идет оператор return $а;, который возвращает значение, равное переменной $а = 10. После того как функция была написана, необходимо во время программы вызвать ее. Для этого предназначена строка $а= mynew();. Именно в этой строке переменной За, которой вне функции (вначале программы) было задано значение 5, функцией задается новое значение. Убедиться в этом помогает строка echo $а;, которая выводит на экран значение переменной. В нашем случае число, которое будет выведено на экран, равно 10.

При работе массивов с функциями специально объявлять массив или хэш не надо. Но в некоторых случаях это бывает полезным. Например, если ваша функция возвращает массив, то онадолжна вернуть именно массив, а не неопределенное значение.

Пример 11.2. Функции работы с массивами

<?

function {

    if ($num>0) return $a[$num] = $num;

    return $a;

}

?>

Эта функция возвращает массив, если $num больше нуля, и неопределенное значение — в противном случае, что затрудняет работу с результатом ее выполнения:

<?

...

$foo = SetArray(0);

$bar = $foo[0];

...

?>

Здесь вам поможет функция array() , возвращающая массив, в том числе и пустой. В другом случае стоит сразу инициализировать переменную $а = array() или вернутьпустой массив как return array(). Первый вариант предпочтительнее.

В РНР есть даже некоторая т. е. вы можете создавать классы, методы и т. д.

Как правил о, классы хороши в больших приложениях или как средство ограничение области видимости переменной.


СОВЕТ

Несмотря на то что объектный подход сейчас пользуется большой популярность, мы не рекомендуем очень уж активно им пользоваться.


Реализация классов в РНР 4 намного эффективнее, чем в РНР 3.

<< Предыдущий параграф Следующий параграф >>
Оглавление