ТОП-10 популярных



Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...

НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...

БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...

Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...

ПОД ЛИТЕРОЙ «N»
Aтаку LCD-мониторов не остановить, а масштабы этого наступления даже немного пугают. Судите сами — многие пользователи только начинают приглядываться к новому для...


Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...

Размер объему не помеха.
С тех пор как компания Fujitsu отказалась от производства жестких дисков для настольных компьютеров, многие пользователи начали забывать о том,...


Какую только информацию мы не помещаем на компакт-диски: резервные копии важных данных, музыку, фильмы... Многие полагают, что главное - «купить...

PHP. Функции. Часть Третья.


28-12-2009

4.4. Статические переменные
Очень важно понимать, что при создании переменной в теле функции время ее су­ществования измеряется временем выполнения функции. После того как выполнение функции завершается и управление передается вызвавшему ее процессу, все пространство переменных функции очищается. Иногда это нежелательно, так как возможны ситуации, когда функции должны помнить значения, хранящиеся в переменных функции в промежутках между ее вызовами. Это можно осуществить, используя глобальные пе­ременные, но более элегантным решением является использование оператора static.
Статическую переменную можно объявить в начале функции до того, как будут заданы какие-либо команды. Эта переменная сохранит присвоенное ей значение после завершения работы функции. Для чего это необходимо? Предположим, что, как показано в листинге 4.6, строки данной таблицы имеют разный фоновый цвет.
 Листинг 4.6. Демонстрация статических переменных
<?
function useColor()
{
//Запомнить последний использованный цвет
static $ColorValue = "#00FF00";
//Выбрать следующий цвет if($ColorValue == "#00FF00")
{
$ColorValue = "#CCFFCC";
}
else
{
$ColorValue = "#00FF00";
}
return($ColorValue);
}
print("<table width="300">n"); for($count=0; $count < 10; $count++)
{
//Задать цвет текущей строки
$RowColor = useColor();
/*
** Распечатать HTML-код строки 
** Задать фоновый цвет
*/
print("<tr>" .
"<td style=" фон: $RowColor">" .
" Строка номер $count" .
"</td>" . "</tr>n");
}
print("</table>n");
?>

В главе 6, "Классы и объекты", описываются члены статического класса, которые отличаются от статических переменных, используемых в функциях.
4.5. Аргументы
При объявлении функции можно объявить аргументы. Аргументы указываются в скобках и отделяются друг от друга запятыми. Аргументам должен предшествовать символ доллара. Внутри функции они становятся переменными. При вызове функции она принимает передаваемые значения.
По умолчанию аргументы копируют переданные значения в локальную переменную, еще известную как передаваемое значение. Если аргументу функции предшествует оператор &, переменная становится псевдонимом передаваемого значения и называется ссылкой на переменную. При изменении значения переменной, на которую дается ссылка, изменения вносятся и в оригинал. Объяснение феномена ссылок на переменные см. в главе 2, "Переменные, операторы и выражения".
Предположим, что, для того чтобы продемонстрировать эту идею, нам необходима функция, которая удаляет из чисел запятые. Таким образом, если в поле ввода мы получим что-нибудь вроде 10,000, то должны быть уверены, что это десять тысяч, а не просто десять. Создадим функцию, которая удаляет все запятые из вводимой функции. Но для этого мы планируем только передать переменную и получить ее видоизмененной. Такие возможности продемонстрированы в листинге 4.7.
Кроме того, можно сделать этот аргумент необязательным. Многие встроенные функции имеют такую возможность. Рассмотрим уже знакомую вам функцию date. Ей необходимо передать один или два аргумента date. Первым аргументом является формат возвращаемого значения, а вторым - временная метка (дата в секундах начиная с 1 января 1970 года). Если второй аргумент не задан, используется текущее время.

| Листинг 4.7. Передача аргументов с помощью ссылок
<?php
function stripCommas(&$text)
{
$text = str_replace(",", "", $text);
}
$myNumber = "10,000";
stripCommas($myNumber);
print($myNumber);
?>

Понравился материал? Поделитесь с друзьями!



<< Предыдущая статьяСледующая статья >>
PHP. Функции. Часть Вторая. PHP. Функции. Часть Четвёртая.