Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
- Учебник по PHP (2004).pdf
Скачиваний:
129
Добавлен:
12.04.2015
Размер:
1.97 Mб
Скачать

old_function

Оператор OLD_FUNCTION позволяет вам определяить функцию используя синтаксис PHP/FI2 (за исключением того, что вы должны заменить "function" на

"old_function").

Это свойство только для совместимости и должно использоваться лишь конверторами PHP/FI2 -> PHP3. Описанные таким образом функции не могут быть вызваны из служебного кода PHP. Вы можете обойти это путем введения специальной функции в терминах PHP3, которая будет вызывать OLD_FUNCTION.

class

Набор переменных и функций, работающих с этими переменными.

<?php

class Cart {

var $items; // Количество вещей в корзине покупателя

//Добавить $num наименований типа $artnr в корзину function add_item ($artnr, $num) {

$this->items[$artnr] += $num;

}

//Убрать $num наименований $artnr из корзины function remove_item ($artnr, $num) {

if ($this->items[$artnr] > $num) { $this->items[$artnr] -= $num; return true;

}else {

return false;

}

}

}

?>

Классы это типы, то есть, заготовки для реальных переменных. Вы должны создавать переменные желаемого типа, используя оператор new :

$cart = new Cart; $cart->add_item("10", 1);

Классы могут быть расширениями других классов. Расширенный класс обладает всеми переменными и функциями базового класса и тем, что вы определите при расширении класса. Это делается используя ключевое слово extends :

class Named_Cart extends Cart { var $owner;

function set_owner ($name) { $this->owner = $name;

}

}

Это определяет класс Named_Cart, который имеет все переменные и функции класса Cart плюс дополнительную переменную $owner и дополнительную функцию set_owner(). Вы можете создать поименованую корзину обычным образом и установить или получить владельца корзины. Также вы можете использовать и нормальные функции корзины в поименованой корзине :

$ncart = new Named_Cart;

//Создать корзину

$ncart->set_owner ("kris");//Указать владельцаprint

$ncart->owner;

//Распечатать имя владельца корзины

$ncart->add_item ("10", 1);//унаследовано из обычной корзины

Математические функции : Функции округления

abs

Возвращает модуль числа.

Синтаксис :

mixed abs(mixed $number)

Тип параметра $number может быть float или int, а ти п возвращаемого значения всегда совпадает с типом этого параметра.

 

$x

=

abs(-4);

//

$x=4

 

$x

=

abs(-7.45);

//

$x=7.45

 

 

 

 

 

 

 

round

Округление дробного числа до целого.

Синтаксис :

double round(double $val)

Округляет $val до ближайшего целого и возвращает результат.

$foo = round(3.4); // $foo == 3.0 $foo = round(3.5); // $foo == 4.0 $foo = round(3.6); // $foo == 4.0 $x = round(5.3); // $x=5

$x = round(5.4); // $x=5 $x = round(5.45); // $x=5 $x = round(5.5); // $x=6

ceil

Дополнение дробного числа до следующего целого.

Синтаксис :

int ceil(float $number)

Возвращает наименьшее целое число, не меньше $number. Разумеется, передавать в $number целое число бессмысленно.

$x = ceil(5.0); // $x=5 $x = ceil(5.1); // $x=6 $x = ceil(5.9); // $x=6

floor

Удаление дробной части числа.

Синтаксис :

int floor(float $number)

Возвращает максимальное целое число, не превосходящее $number.

$x = floor(5.1); // $x=5 $x = floor(5.9); // $x=5

Математические функции : Случайные числа

srand

Производит инициализацию генератора случайных чисел.

Синтаксис :

void srand(int seed)

Инициализирует генератор случайных чисел занчением seed.

srand((double) microtime()*1000000); $random = rand();

echo $random;

Вот что получиться:

5645

getrandmax

Возвращает максимально возможное случайное число.

Синтаксис : int getrandmax()

Эта функция возвращает максимальное значение, которое можно получить при помощи функции генерации случайных чисел rand().

Обычно это 32767

rand

Производит генерацию случайного числа.

Синтаксис :

int rand([int max [, int min]])

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

Если параметры min и max отсутствуют, возвращается число, лежащее в пределах от 0 до RAND_MAX.

Для корректной работы данной функции перед ее использованием нужно проинициализировать генератор случайных чисел функцией srand().

mt_rand

Функция возвращает MT-случайное число, достаточно равномерно даже для того, чтобы использовать его в криптографии.

Синтаксис :

int mt_rand(int $min=0, int $max=RAND_MAX)

Если вы хотите генерировать числа не от 0 до RAND_MAX (эта константа задает максимально допустимое случайное число, и ее можно получить при помощи вызова mt_getrandmax()), задайте соответствующий интервал в параметрах $min и $max. Не забудьте только перед первым вызовом этой функции запустить mt_srand().

mt_srand(time()+(double)microtime()*1000000);

$x = mt_rand(1,100); // $x - значение от 1 до 100

mt_srand

Настраивает MT-генератор случайных чисел на новую последовательность.

Синтаксис :

void mt_srand(int seed)

Дело в том, что хотя числа, генерируемые mt_rand(), достаточно равновероятны, но у них есть один нелостаток: последовательность сгенерированных чисел будет одинакова если сценарий вызывать несколько раз подряд. Функция mt_srand() как раз решает данную проблему: она выбирает новую последовательность на основе параметра $seed, причем практически непредсказуемым образом.

mt_srand(time()+(double)microtime()*1000000); for($i=0;$i<=10;$i++) {

$x = mt_rand(1,10); };

В этом случае последовательность устанавливается на основе времени завуска сценария (в секундах), поэтому она достаточно непредсказуема. Для еще более надежного результата рекомендуется приплюсовать сюда еще микросекунды (что и было сделано), а также идентификатор процесса, вызывавшего сценарий.

mt_getrandmax

Возвращает максимальное MT-случайное число.

Синтаксис :

int mt_getrandmax()

Возвращает максимальное число, которое может быть сгенерированно функцией mt_rand() - иными словами, константу RAND_MAX

$max = mt_getrandmax(); // $max = 2147483647

lcg_value

функция генерирует случайное дробное число.

Синтаксис : double lcg_value()

Эта функция возвращает псевдослучайное дробное число в диапазоне от 0 до 1.

Математические функции : Перевод в различные системы счисления

base_convert

Конвертация числа из одной системы счисления в другую.

Синтаксис :

string base_convert(string $number, int $frombase, int $tobase)

Переводит число $number (заданное как строка в системе счисления по основанию $frombase) в систему по основанию $tobase. Параметры $frombase и $tobase могут принимать значения только от 2 до 36 включительно. В строке $number цифры обозначают сами себя, а буква a соответствует 11, b -12, и т.д. до z, которая обозначает 36. Например, следующие команды выведут 11111111 (8 единичек), потому что это - не что иное, как представление шестнадцатиричного числа FF в двоичной системе счисления:

 

$x = base_convert("FF",16,2);

//$x = 11111111

 

$x = base_convert("11111111",2,16);

//$x = FF

 

$x = base_convert("200",10,16);

//$x = C8

 

 

 

 

bindec

Производит конвертацию двоичного числа в десятичное.

Синтаксис :

int bindec(string binary_string)

Преобразует двоичное число, заданное в строке binary_string, в десятичное число. Максимальное число, которое еще может быть преобразовано, равно 2 147 483 647

$x = bindec(11111111); // $x = 255 $x = bindec(10101010); // $x = 170

$x = bindec(2147483647); // $x = 1111111111111111111111111111111

decbin

Производит конвертацию десятичного числа в двоичное.

Синтаксис :

string decbin(int $number)

Возвращает строку, представляющую собой двоичное представление целого числа $number. Максимальное число, которое еще может быть преобразовано, равно 2 147 483 647, которое выглядит как 31 единичка в двоичной системе.

Существует аналогичные функции для восьмеричной и шестнадцатиричной систем. Называются они так же, только вместо "bin" подставляются соответственно "oct" и "hex".

$x = decbin(255); // $x = 11111111

$x = decbin(2147483647); // $x = 1111111111111111111111111111111

dechex

Производит конвертацию десятичного числа в шестнадцатеричное.

Синтаксис :

string dechex(int number)

Возвращает строку, представляющую собой шестнадцатеричное представление целого числа number. Максимальное число, которое еще может быть преобразовано, равно 2 147 483 647

$x = dechex(2147483647); // $x = 7fffffff

decoct

Производит конвертацию десятичного числа в восьмеричное.

Синтаксис :

string decoct(int number)

Возвращает строку, представляющую собой восьмеричное представление целого числа number. Максимальное число, которое еще может быть преобразовано,

равно 2 147 483 647

$x = dechex(2147483647); // $x = 17777777777

hexdec

Производит конвертацию шестнадцатеричного числа в десятичное.

Синтаксис :

int hexdec(string hex_string)

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

равно 7fffffff

$x = hexdec(7fffffff); // $x = 2147483647

octdec

Производит конвертацию восьмеричного числа в десятичное.

Синтаксис :