программирование, создание программ, учебник Delphi, учебник по программированию, бейсек, делфи, си, паскаль
 
 
 

 

Функции

get_defined functions
Получение перечисления всех доступных функций
array get_defined_functions(void)
Возвращает многомерный ассоциативный массив, содержащий имена всех функций, доступных сценарию.
См. также: get_defined_vars(), get_extension_funcs().
function_ exists
Проверка существования функции
bool function exists (string function name)
Возвращает TRUE, если функция с именем function_name была декларирована.
if ( function_exists( 'imap_open')) {
echo "IMAP функции доступны.<br>\n"
} else
{ echo "IMAP функции НЕ
доступны <br>\n"-j }
Заметьте, что если имя функции декларировано, это еще не означа-/ ст, что ее можно использовать, и это зависит от конфигурации РНР.
См. также method_exists().
call_user_func
Косвенный вызов функции
mixed call_user_func (string functioiyiame [, mixed parameter [, mixed
Вызывает функцию с именем function_name, передавая ей все последующие аргументы.
function AAA ($t) {
print "Аргумент - $t":
} call_user_fur>c САДА'. "МОЙ
аргумент");
create_function
Динамическое создание функции
string create_function (string args, string code)<$M2-36> Создает анонимную функцию и возвращает подобранное для нее имя. Обычно перечисление в строке args аргументов функции передается в одинарных кавычках в качестве ограничителей; и то же рекомендуется для кода тела функции, передаваемого в строке code. Это делается для того, чтобы предотвратить замену интерпретатором переменных на значения; в противном случае необходимо предварять указание переменных слешем: Uavar. Возвращаемые имена функций обычно имеют префикс lambda
Таким образом, можно создавать функции на основе информации, полученной во время исполнения.
Snewfunc = create_function('$a.Sb',
'return "ln($a) + ln($b) = " log($a * $b),');
echo "Новой анонимной
функции присвоено имя:
$newfunc\n"; echo $newfunc(2.M_E)."\n";
// Выводит следующее
// Новой анонимной функции присвоено
имя- alambda_l // ln(2) +
ln(2.718281828459)
= 1 6931471805599
Ниже приводится пример функции обработчика, создающей набор функций на основе информации, хранимой в переменных и массиве, а затем пакетно применяющей этот набор к паре аргументов.
function process($varl. $var2. $farr)
{ // функция обработчик
// создать набор математических функций
$fl = 'if ($a >=0) {return "b*a".5 = ".$b*sqrt($a),}'.
' else {return FALSE:}';
$f2 = "return \"min(bx2+a. a~2+b) =
\" min(\$a*\$a+\$b.\$b*\$b+\$a):";
$f3 = 'if ($a > 0 && $b != 0) {return
"ln(a)/b = " log($a)/$b;}'.
I else {return FALSE;}'.
Sfarr = array(
create_function('$x.$y',
'return "немного тригонометрии: ".
(sin($x) + $x*cos($y)):').
create_function('$x.$y'. 'return
"гипотенуза: ".
sqrt($x*$x + $y*$y).').
create_function('$a.$b', $fl).
create_function('$a.$b',
$f2), create_function('$a.$b'. $f3) ):
echo "\пИспользование первого
набора матем. функций \n"; echo
"parameters:
2.3445. M_PI\n"; process(2 3445. M_PI, Sfarr):
// теперь создать набор строковых
функций Sgarr = array( create_function
('$b.$a'.'if (strncmp($a.$b,3) == 0)'
' return "** \"$a\" и \"$b\"\n** Похоже
строки одинаковы!'   '
(после проверки первых
трех символов)";'). create_function('$a.$b'.';
return "CRC: ".crc32($a).". ".
crc32(b):'), create_function('$a.$b',
'; return "sirmlar(a.b) = ".
siimlar_text($a.$b,&$p) "($p*)":') ).
echo "\пИспользование первого
набора строковых функций \n":
processC'OnbiT
- это сын ошибок".
"Опыт - это эксперимент". Sgarr);
После запуска сценария будет выведен следующий текст:
Использование первого набора
матем.
функций parameters: 2.3445. М_Р1
немного тригонометрии: -
1.6291725057799
гипотенуза 3.9199852871011 о*а'.5
= 4 8103313314525 min(b~2+a a'2+b)
= 8.6382729035898 ln(a)/b =
0 27122299212594
Использование первого набора
строковых функций **
"Опыт - это эксперимент"
и "Опыт - это сын ошибок"
** Похоже строки
одинаковы! (после проверки первых
трех символов) CRC: -1865696101 .
1908338681 siimlar(a.b) = 13
(60.4651162/907*)
Но, пожалуй, наиболее полезное использование анонимных лямбда-функций — это их использование для создания функций обратного вызова, например при использовании совместно с array_walk() или usort().
//Пример 1. Использование anonymous
функций, как callback функций
$av = arrayC'the "."a "."that "."this "):
array_walk($av. create_function('S$v.$k'.'$v =
$v."thing".')): pnnt_r($av): // for PHP
3 use varjJump()// Выводит: // Array
// ( // [0] => the thing
// [1] => a thing
// [2] => that thing
// [3] => this thing // )
// массив строк отсортированный
по числу
символов в строке
// от наиболее короткой
до самой длинной $sv =
arrayC'small","larger","a big string","It
is a string thing"); print_r($sv);
// Выводит:
// Array // ( // [0] => small
// [1] => larger
// [2] => a big string
// [3] => it is a string thing // )
// сортировать строки
usort($sv. create_function
('$a.$b' . 'return strlen($b) - strlen($a): '
)):
print_r($sv);
// Выводит:
// Array // {
// [О] => it is a string thing
// [1] => a big string
// [2] => larger
// [3] => small // )
func_get_arg
Получение аргумента функции
mixed func_get_arg (Int argjium)
Возвращает указанный argjium аргумент, переданный в текущую пользовательскую функцию в списке параметров. Перечисление параметров начинается с нуля.
Функция func_get_arg() выдаст предупреждение об ошибке при вызове вне определения функции. Также предупреждение будет выдано (а функция возвратит FALSE) при попытке узнать параметр, которого не существует в списке аргументов; для правильной работы функции прежде необходимо узнать общее количество параметров с помощью функции func_num_args().
<?php
function foot) {
Snumargs = func_num_args();
echo "Число аргументов $numargs
<br>\n":
if (Snumargs >= 2) j
echo "Второй аргумент:
" func_get_arg (1) . "<br>\n": } }
foo (1. 2. 3): ?>
См. также: func_num_args() и func_get_args().
func_get_args
Получение аргументов функции в массиве
array func_get_args (void)
Возвращает в массиве список аргументов, с которым была вызвана текущая пользовательская функция. Функция выдаст предупреждение об ошибке при вызове вне определения функции.
<?рhр
function тоо() {
Jnumargs = func_num_args() ;
echo "число аргументов:
$numargs<br>\n". $arg_list =
func_get_args().
for (Si = 0. $1 < Snumargs; $1+*)
{ echo "аргумент (номер $i): "
. $arg list[$i] . "<br>\n"; } }
foo (1. 2. 3); ?>
См. также: func_num_args() и func_get_arg().
func_num_args
Определение числа полученных аргументов
int func_num_args (void)
Возвращает число аргументов, переданных в текущую пользовательскую функцию. Функция выдаст предупреждение об ошибке при вызове вне определения функции.
Эта функция обычно используется совместно с функциями func_get_ arg() и func_get_args() в пользовательских функциях, принимающих неопределенное число параметров.
<?php
function foo() {
Snumargs = func_num_args():
echo "Число аргументов функции:
$numargs\n": }
foo (]. 2, 3). // Pnnts 'Number of arguments: 3' ?>
Объекты и классы
Описываемые в разделе функции позволяют получать информацию о классах и экземплярах объектов. Можно узнать, к какому классу принадлежит объект, его свойства и методы, а также их наследственную принадлежность.
В этом примере сначала определяется базовый класс, а затем его наследник.
<?php // Пример 1 Файл с определениями
классов: classes. inc class ИсточникС
вета
{ // базовый класс var $>правляемость;
//неизменное логическое значение
var
$Яркость;
// конструктор function ИсточникСвета
( $управляемость. $яркость="неяркий"
) {
$this->Управляемость = $управляемость;
$this->flpKOCTb = $яркость: }
function 15_управляемо() {
return $1гп5->Улравляемость. }
function whatjipKOCTbО {
return $this->Яркость; }
} // конец определения класса
ИсточникСвета
// Расширение базового класса
class Лампочка extends Источник
Света {
var $Включена = FALSE.
// конструктор function Ла»мпочка() (
$this->ИсточникСвета( TRUE,
"яркий" ):
// Лампочка - это ИсточникСвета
(управляемый, "яркий") }
function включить() {
$this->Включена = TRUE. }
function 15_вклочена () {
return $this->Включена; }
} // конец определения класса
Лампочка ?>
Следующий сценарий создает экземпляры объектов на основе определенных классов, а затем выводит основную информацию, которую можно узнать о классах и объектах средствами РНР 4.
<php // Пример 2 Файл test_scnpt.uhp
include
"classes.тс": // определения функций
function print_vars($obj) (
$arr = get_object_vars($obj);
while (list($prop. $val) = each($arr))
echo "\t - свойство '$ргор' =
\"$val\"\n": i
function pnnt_methods($cbj)
{ $arr - get_class_methods(qet_class($obj)):
foreach (Jarr as Smethod)
echo "\t - метод: $rnethodition"; }
function class_parentagp($obj. Sclass)
{ global $$obj: if (is_subclass_of($$obj 
Sclass)),
{ erho "\пОбьркт $obj принадлежит к
классу:
" get_class($$obj); echo " поцкпасса
$class\n"; }
else { echo "Объект $obj не принадлежит
к подклассу $class\n"; } i /
конец определения функций
еспо "Доступные сценарий
'$PHP_SELF' классы\n": iclss
- get_Jeclared_classesf
> forear.h ($c.isb as $cis name)
echo "\t- *cls_namei)\n":
// инициализируем 2 объекта
$солние = new ИсточникСвета
СTRUE."очень яркий"); $эл_лампочка *
new Лампочка ()
// выясняем информацию об объектах
echo "\пКЛАСС объекта 'солнце'. '
" get_class($coлнце) '"\n".
еспо "КЛАСС обьекта 'эл_лампочка' '
.get сlаss(эл_ ланлочка); echo
"'. Родительский Класс '"
get parent сlass(эл_лампочка).°)\гГ;
// проследить свойства объекта
'солнце' echo
"\n Свойства объекта 'солнце'
\п"; print \'аг5($солнце).
// и свойства объекта 'эл_лампочка
echo "\n Методы объекта
'эл_лампочка': \n":
pnnt_methocls(эл_лампочка):
echo "\n Наследственность:\n": сlass
_раrentаgе
("эл_лампочка", "Лампочка"): сlаss
_раrentаgе
("эл_лампочка". "ИсточникСвета"):
При запуске сценария в системе РНР 4.0.4 для Windows он выводит:
Доступные сценарию классы
class. stdClass()
class: OverloadedTestClass()
class: Directory()class COMO
class: ИсточникСвета()
class: Лампочка()КЛАСС объекта
'солнце':
'ИсточникСвета'
КЛАСС объекта 'эл_лампочка':
'Лампочка'. Родительский Класс
(ИсточникСвета)
Свойства обьекта 'солнце':
- свойство 'Управляемость' =
"1" - свойство 'Яркость' =
"очень яркий"
Методы объекта 'эл_лампочка':
- метод ИсточникСвета()
- метод. 13_управляемо()
- метод: what_яpKocTb()
- метод: Лампочка()
- метод: включить()
метод- 15_включена()
Наследственность:
Объект эл_лампочка не
принадлежит к
подклассу: Лампочка Объект
'эл_лампочка'
принадлежит к классу: 'Лампочка',
подкласса:
'ИсточникСвета'
get_ declared_classes
Получение списка доступных классов
array get_declared_classes (void)
Возвращает в массиве перечисление имен классов, декларированных для текущего сценария.
В РНР 4 в начале возвращаемого массива указываются имена трех дополнительных классов: stdClass (определен в Zend/zend.c), Over-loadedTestClass (определен в ext/standard/basic_functions.c) и Directory (определен в ext/standard/dir.c); для системы Windows доступен также класс Com.
class_ exists
Проверка существования класса
booll_ class_exists (string class_name)
Возвращает TRUE, если для класса classjiame имеется определение; иначе — FALSE.
get_class_methods
Получение списка методов класса
array get_class_methods (string class_name)
Возвращает в массиве перечисление методов класса с именем class_ name.
См. также: get_class_vars(), get_object_vars().
get_class_vars
Получение списка свойств класса
array get_class_vars (string class_name)
Возвращает в массиве перечисление свойств класса с именем class_ name.
См. также: get_classjnethods(), get_object_vars().
get _class
Получение класса объекта
string get_class (object obj)
Возвращает имя класса, к которому принадлежит объект obj.
См. также: get_parent_class(), is_subclass_of().
get_parent_class
Получение имени родительского класса объекта
string get_parent_c!ass (object obj)
Возвращает имя родительского класса для класса, которому принадлежит объект obj.
См. также: get_class(), is_subclass_of().
is_subclass_of
Проверка наследования класса
boot is_subclass_of (object obj, string superclass)
Возвращает TRUE, если объект obj принадлежит к классу, наследному от класса superclass, иначе возвращает FALSE.
См. также: get_class(), get_parent_class().
get_object_vars
Получение списка свойств объекта
array get_object_vars (object obj)
Возвращает в ассоциативном массиве инициализированные для объекта obj свойства. Если переменным класса, к которому принадлежит объект obj, не были присвоены значения, то такие переменные в возвращаемый массив не включаются.
<?php
class Point2D { // точка на плоскости
var $x. $у: var Slabel.
//конструктор
function Point2D($x. $y) {
$this->x = $х; $this->y = $у. }
function setl_abel($label) {
$this->label = Slabel. }
function getPointO {
return arrayC'x" => $this->x.
"y" => $this->y.
"label" => $this->label); } }
$pl = new Point2D(1.233. 3.445);
pnnt_r(get_object_vars($pl));
// "Slabel" объявлена, но не
инициализирована // Array // (
// [х] => 1.233 // [у] => 3 445
// ) $pl->setl_abel("point #1");
рп nt_r(get_object_vars( $pl)):
// Array // (
// [х] => 1.233 // [у] => 3.445
// [label] => point #1 // ) ?>
См. также: get_classjnethods(), get_class_vars().
method_exists
Проверка наличия у объекта указанного метода
bool method_exists (object object, string method_name)
Возвращает TRUE, если объект obj имеет метод с именем methodjiame, в противном случае возвращает FALSE.
call_ user_ method
Косвенный вызов метода объекта
mixed calljjserjnethod (string method_name, object obj [, mixed parameter [, mixed ...]])
Вызывает метод method_name объекта obj. Возможные параметры методу можно передать в последующих аргументах parameter.
<?php
class Country { // объявление класса
var $NAME; var $TLD.
function Country($name. $tld) {
$this->NAME = $name;
$this->TLD = Hid; }
function pnnt_info($prestr="") {
echo Sprestr "Country: ",$this->NAHE.
"\n": echo Sprestr."Top
Level Domain: ".$this->TLD."\n": } }
// создаем экземпляр класса Sentry
= new CountryC'PoccMfl". "ru");
echo "* Прямой вызов метода класса \n",
Scntry->print_info(), echo "\n*
Косвенный вызов того же метода
класса \n": calljjserjnethod
("pnntjnfo". Sentry. "\t"): ?>
См. также call_user_func().
 
Математические функции
Эти математические функции предназначены только для работы с числовыми данными, которые имеет ваш компьютер. Если вам требуется дополнительная точность в расчетах, обратитесь к «математическим функциям повышенной точности BCMath».
Математические функции могут быть разделены на несколько групп: математические константы, алгебраические функции, функции генерации случайных чисел, тригонометрические функции, функции конвертации чисел.
Математические константы

Следующие значения определяются математическим модулем РНР как константы:


Константа

Значение

Описание

М_Р1

3.14 159265358979323846

Пи

М_Е

2.7182818284590452354

E

M_LOG2E

1. 4426950408889634074

log_2 e

M_LOG10E

0.43429448190325182765

log_10 e

M_LN2

0.693 1471 8055994530942

log_e 2

М LN10

2.30258509299404568402

log_e 10

М PI 2

1.57079632679489661923

Пи/2

М_Р1_4

078539816339744830962

Пи/4

М_1_Р1

0.31330988618379067154

1/Пи

М 2 PI

0.63661977236758134308

2/Пи

M_SQRTPI

1.77245385090551602729

Sqrc(nn)

M_2_SQRTPI

1.12837916709551257390

2/sqrt(nii)

M_SQRT2

1 .4 1 42 1356237309504880

Sqrt(2)

M_SQRT3

1.73205080756887729352

Sqrt(3)

M_SQRT1_2

0.70710678118654752440

l/sqrt(2)

M_LNPI

1.144729885849400174)4

log_e(IIn)

M_EULER

0.57721566490153286061

Константа Эйлера

Алгебра
abs
Получение абсолютного значения числа
mixed abs (mixed number)
Возвращает абсолютное значение аргумента number. Если аргумент имеет дробный тип, возвращается дробь; иначе целое.
$I=abs(-546). // $I=dnt) 546; $D=abs(123 456);
// $D=(double) 123.456:
max
Получение наибольшего аргумента
mixed max (mixed argl, mixed arg2.....mixed argn)
Возвращает наибольший из аргументов. Число аргументов неограниченно. Если в качестве первого параметра передается массив, функция возвращает наибольшее значение из этого массива. Если аргумент не массив, то необходимо как минимум два аргумента, иначе выдается предупреждение. В случае, когда в аргументах передастся более одного массива, возвращается тот массив, который содержит наибольшее значение. Комбинировать в аргументах массивы и скалярные значения не рекомендуется. Возвращается значение с тем типом, который имеет наибольшую точность среди аргументов (double или integer), и этот же тип используется для сравнения аргументов.
min
Получение наименьшего аргумента
mixed min (mixed argl, mixed arg2, mixed argn)
Возвращает наименьший из аргументов. Функция действует подобно функции тах().
round
Округление дробного числа до целого
double round (double val [, int precision])
Округляет дробное число val до указанной аргументом precision точности (число десятичных знаков после занятой).
$foo = round (34). // $foo ==30 $foo =
round (3.5); // $foo ==40
$foo = round (1.95583. 2): // $foo ==
1.96
См. также: ceil ()и floor().
floor
Удаление дробной части числа
int floor (float number)
Возвращает целое значение аргумента number, у которого безусловно отбрасываются все цифры после запятой. Указывать в аргументе целые числа — бесполезная операция.
$foo = floor (I 95583): // $foo == 1 
См. также: ceil ()и round().
ceil
Дополнение дробного числа до следующего целого
int ceil (float number)
Возвращает целое значение аргумента number, дополненного до следующего целого числа. Указывать в аргументе целые числа бессмысленно.
$х = ceil(4.25): // $х=5
См. также: floor() и round().
Pi
Получение значения числа Пи
double pi (void)
Возвращает значение числа Пи (3.1415926535898).
sqrt
Извлечение квадратного корня числа
float sqrt (float arg)
Возвращает квадратный корень из аргумента arg.
echo sqrt(90),// выведет 9.4868329805051
log
Вычисление натурального логарифма
float log (float arg)
Возвращает значение натурального логарифма аргумента arg.
echo log(2 7); // выведет 0.99325177301028
log 10
Вычисление десятичного логарифма
float logl() (float arg)
Возвращает значение десятичного логарифма аргумента arg.
echo loglO(lOOO). // выведет 3
ехр
Вычисление экспоненты
float exp (float arg)
Возвращает число с, возведенное в степень arg.
echo exp(l): //' выведет 2.71828)828459
См. также pow().
pow
Возведение числа в степень
float pow (float base, float exp)
Возвращает результат возведения основания base в степень ехр.
ecno pow(2.8).// выведет 256
См. также ехр().
Генерация случайных чисел
srand
Инициализация генератора случайных чисел
void srand (int seed)
Инициализирует генератор случайных чисел значением seed.
srand ((double) microtiroe() * 1000000): Srandval = rsnd():
См. также: rand(), getrandmax(), mt_rand(), mt_srand() и mt_getrandmax().
getrandmax
Получение максимального случайного числа int getrandmax (void)
Возвращает максимальное значение, которое может возвратить вызов функции генератора случайных чисел rand(). Обычно это 32 767.
См. также: rand(), srand(), mt_rand(), mt_srand() n mt_getrandmax().
rand
Генерация случайного числа
int rand ([int min [, int max]])
При вызове с необязательными параметрами rain, max, определяющими соответственно минимальное и максимальное значение, генерирует и возвращает целочисленное псевдослучайное значение, лежащее включительно в указанных пределах. Если аргументы не указываются, то используются значения по умолчанию: 0 и RAND MAX.
Не забывайте заранее инициализировать генератор случайных чисел функцией srand().
См. также: srand(), getrandmax(), mt_rand(), mt_srand() и rat_getrandmax().
mt_srand
Инициализация МТ-генератора случайных чисел
void mt_srand (int seed)
Инициализирует МТ-генератор случайных чисел значением seed.
mt_srand ((double) microtimeO * 1000000): Srandval = mt_rand():
См. также: mt_rand(), mt_getrandmax(), srand(), rand() и getran dmax().
mt_ getrandmax
Получение максимального МТ-случайного числа int mt_getrandmax (void)
Возвращает максимальное значение, которое может быть получено при вызове функции, генерирующей случайные числа, — mt_rand(). Обычно это 2 147 483 647.
См. также: mt_rand(), mt_srand(), rand(), srand() и getrandmax().
mt_ rand
Генерация МТ-случайного числа
int mt_rand ([int min [, int max]])
При вызове с необязательными параметрами min, max, определяющими соответственно минимальное и максимальное значение, генерирует и возвращает целочисленное псевдослучайное значение, лежащее включительно в указанных пределах. Если аргументы не указываются, то используются значения по умолчанию: 0 и RAND_MAX.
Не забывайте заранее инициализировать генератор случайных чисел функцией rat_srand().
Многие функции генераторов случайных чисел из старых библиотек Hbcs имеют непонятные или неизвестные характеристики, и, что более важно, они медленно работают. По умолчанию РНР использует случайный генератор из библиотеки libc в функции rand(). Функция mt_rand() является заменой. Она использует известный алгоритм Мерсена Твистера (Mersenne Twister), придумавшего его для криптографических задач, и в среднем эта функция в 4 раза быстрее, нежели аналог из библиотеки libc. Для более подробной информации смотрите домашнюю страничку автора (http://www.math.keio.ac. jp/~matumoto/emt.html), а исходный оптимизированный код алгоритма МТ доступен по адресу: http://www.scp.syr.edu/~marc/hawk/twister. html.
См. также: mt_srand(), mt_getrandmax(), srand(), rand() и getrandmax().
lcg_value
Генерация случайного дробного числа
double Icg_value(void);
Возвращает псевдослучайное дробное число в диапазоне от 0 до 1.
Тригонометрия
sin
Получение синуса аргумента
float sin (float arg)
Возвращает значение синуса аргумента агд, вычисленное в радианах.
См. также: cos() и tan().
cos
Получение косинуса аргумента
float cos (float arg)
Возвращает значение косинуса аргумента агд, вычисленное в радианах. ,
См. также: sin() и tan().
tan
Получение тангенса аргумента float tan (float arg)
Возвращает значение тангенса аргумента arg, вычисленное в радианах.
См. также: sin() и cos().
asin
Получение арксинуса аргумента float asin (float arg)
Возвращает значение арксинуса аргумента агд, вычисленное в радианах.
См. также: acos() и atan().
acos
Получение арккосинуса аргумента
float acos (float arg)
Возвращает значение арккосинуса аргумента аrg, вычисленное в радианах.
См. также: asin() и atan().
atan
Получение арктангенса аргумента float atan (float arg)
Возвращает значение арктангенса аргумента агд, вычисленное в радианах.
См. также: asin() и acos().
atan2
Получение арктангенса двух чисел float atan2 (float у, float x)
Возвращает значение арктангенса двух аргументов х и у, вычисленное в радианах.
Ее действие сходно с вычислением арктангенса частного (у/х), за исключением того, что знаки обоих аргументов используются для определения квадранта результата.
См. также: acos() и atan().
Конвертация чисел
base_convert
Конвертация числа из одной системы счисления в другую
string base_convert (string number, int frombase, int tobase)
Возвращает строку, содержащую представление числа number, переведенного из системы счисления frombase, в систему tobase. Для аргументов frombase и tobase допускаются значения от 2 до 36 включительно. Цифры в числах с основанием большим, чем 10, представляются буквами от «а» до «z»; «а» означает 10, «b» — ll и т. д. до «z», означающей 35.
Sbinary - base_convert (Shexadecimal. 16. 2).
decbin
Конвертация десятичного числа в двоичное
string decbin (int number)
Возвращает строку, содержащую двоичное представление целого числа, указанного аргументом number. Наибольшее значение, которое число number может иметь, это 2 147 483 647 в десятичном представ лснии (в двоичном - это строка из 31-й единицы).
См. также bindec().
dechex
Конвертация десятичного числа в шестнадцатеричное , string dechex (int number)
Возвращает строку, содержащую шестнадцатеричное представление F целого числа, указанного аргументом number. Наибольшее значение которое число number может иметь, это 2 147 483 647 в десятичном представлении (в шестнадцатеричном - это строка 7fffffff)
См. также hexdec().
decoct
Конвертация десятичного числа в восьмеричное string decoct (int number)
Возвращает строку, содержащую восьмеричное представление ц лого числа, указанного аргументом number. Наибольшее значение которое число number может иметь, это 2 147 483 647 в десятичном представлении (в восьмеричном - это строка 17777777777).
См. также octdec().
bindec
Конвертация двоичного числа в десятичное int bindec (string_ binary_string)
Возвращает десятичный целочисленный эквивалент двоичного числа, представленного строковым аргументом binary_string. Максимальное число, которое может быть конвертировано, это строка из 31-и единицы, равная в десятичном представлении 2 147 483 647.
См. также decbin().
hexdec
Конвертация шестнадцатеричного числа в десятичное int hexdec (string hex_string)
Возвращает десятичное целочисленное значение шестнадцатеричного числа, представленного строкой hex string. Максимальное значение аргумента - «7fffffff», или 2 147 483 647 в десятичном *™
См. также dechex().
octdec
Конвертация восьмеричного числа в десятичное int octdec (string octal_string)
Возвращает десятичное целочисленное значение восьмеричного числа, представленного строкой octal_string. Максимальное значение аргумента — «17777777777», или 2 147483647 в десятичном исчислении.
См. также decoct().
deg2rad
Преобразование градусов в радианы
double deg2rad (double number)
Возвращает значение number, указанное в градусах, преобразованным в радианы.
См. также rad2deg().
rad2deg
Преобразование радианов в градусы
double rad2deg (double number)
Возвращает значение number, указанное в радианах, преобразованным в градусы.
См. также deg2rad().
number_ format
Форматирование числа
string number_format
(float number, int decimals, string dec_point, string thousands_sep)
Возвращает строку, содержащую отформатированное значение числа number. Функция может принимать либо один, либо два, либо четыре аргумента (но не три).
Если указывается один аргумент, число number будет отформатировано без указания цифр после десятичной точки, но каждая тройка тысячных цифр будет разделена запятой. Например,
echo number_format( 96739590. 345):
// выведет 96.733.590.
Если указывается два аргумента, число number будет отформатировано с указанием decimals цифр после десятичной точки и каждая тройка тысячных цифр будет разделена запятой (заметьте, числа округляются и добавляются незначащие нули в конце).
echo riumber_format( 96739590. 3945.1);
// выведет 9b. 739. 590. 4 echo number
format (96739590 3.4); // выведет 96. /29.590.3000
Если указываются все четыре аргумента, число number будет отформатировано с указанием decimals цифр после десятичной точки (в качестве которой будет использован символ dec_point), и каждая тройка тысячных цифр будет разделена символом thousands_sep (заметьте, числа округляются и добавляются незначащие нули в конце).
echo number_format (96739590.3.3.":". ..... );
// выведет 96 739'590:300
Математические функции повышенной точности BCMath
При компиляции с параметром --enable-bcmath эти функции доступны в РНР. В последних версиях РНР этот модуль встроен в РНР.
По причинам изменения лицензии сама библиотека ВСМАТН распространяется отдельно от стандартного пакета РНР. Загрузить архив библиотеки можно с адреса url: http://www.php.net/extra/number4. tar.gz. Прочтите файл README . ВСМАТН в дистрибутиве РНР для получения более подробной информации.
bcscale
Установка точности вычислений по умолчанию
string bcscale (int scale)
Устанавливает точность, которая будет использоваться по умолчанию функциями be math.
bcadd
Сложение
string bcadd (string left operand, string right operand [, int scale])
Возвращает строковое значение суммы (right_operand + left_operand) с точностью (числом десятичных знаков после запятой в результате), указанной в аргументе scale.
См. также bcsub().
bcsub
Вычитание
string bcsub (string left_operand, string right_operand [, int scale])
Возвращает строковое значение разности (right_operand_left_operand) с точностью (числом десятичных знаков после запятой в результате), указанной в apгументе scale.
См. также bcadd().
bcromul
Умножение
string bcmul (string left operand, string right operand [, int scale])
Возвращает строковое значение произведения (right_operand * left_ operand) с точностью (числом десятичных знаков после запятой в результате), указанной в аргументе scale.
См. также bcdiv().
bcdiv
Деление
string bcdiv (string left operand, string right operand [, int scale])
Возвращает строковое значение результата деления left_operand на right_operand с точностью (числом десятичных знаков после запятой в результате), указанной в аргументе scale.
См. также bcmul ().
bcmod
Получение остатка целочисленного деления
string bcmod (string left_operand, string modulus)
Возвращает остаток от целочисленного деления делимого left_operand на делитель modulus.
См. также bcdiv().
bccomp
Сравнение
int bccomp (string left_operand, string right_operand [, int scale])
Сравнивает два числа (right_operand и left_operand) с точностью (числом десятичных цифр после запятой, используемых при сравнении), заданной необязательным аргументом scale.
Возвращается целочисленный результат: 0, если два аргумента равны; + 1, если аргумент left_operand больше, чем аргумент right_operand; и -1, если left_operand меньше, чем right_operand.
bcsqrt
Извлечение квадратного корня
string bcsqrt (string operand, int scale)
Возвращает квадратный корень аргумента operand. Необязательный аргумент scale указывает число цифр после десятичной точки, которые возвращаются в результате.
См. также bcpow()
bcpow
Возведение числа в степень
string bcpow (string x, string у [, int scale])
Возвращает результат возведения числа х в степень у. Необязательный аргумент scale указывает число цифр после десятичной точки, которые возвращаются в результате.
См. также bcsqrt().
Математические функции GMP
Эти функции позволяют работать с целыми числами повышенной точности определенного формата, используя библиотеку GNU MP. Для использования их в РЫР необходимо перекомпилировать его с ключом — with-gmp.
Коды библиотеки и документацию можно загрузить с сайта http:// www.swox.com/gmp/. Требуется версия 2 или выше.
Эти функции (их большинство) могут также работать с обычными целочисленными и строковыми (содержащими целые числа) аргументами, которые автоматически преобразуются в формат GMP. Но наивысшая производительность все же достигается при непосредственном использовании чисел формата GMP; см. также gmp_init().
<'php
function fact ($x) { //
функция вычисления факториала
if ($x <= 1) // (достаточно быстро вычисляет
return 1; // факториалы до 1000) else
return gmpjnul ($x. Tact ($x-D); }
print gmp_strval (fact (1000)) "\n": ?>
Значения чисел GMP
gmpjnit
Создание числа GMP
resource gmp_init (mixed number)
Число GMP создается из целочисленного или строкового аргумента. В строке число может быть указано в десятичном или шестнадцате-ричном (тогда оно должно иметь префикс Ох) формате.
$а - gmp init (123456);
$b - grapjrvtt ("OxFFFFDEBACDFEDF7200");
Заметьте, не всегда необходимо явно вызывать эту функцию, если нужно использовать в функциях GMP (например, gmp_add()) обычные числа или строки вместо чисел GMP. Аргументы функций GMP автоматически конвертируются при необходимости (и возможности) с использованием тех же правил, что и для функции gmp_init().
gmp_intval
Конвертация числа GMP в целое
int gmp_intval(resource gmpnumber)
Возвращает целое число, если оно не превышает его максимально возможную размерность (тип знакового длинного (32 бита) — signed long type). Если необходимо всего лишь распечатать значение, используйте gmp_strval().
gmp_strval
Конвертация числа GMP в строку
string gmp_strval (resource gmpnumber [, int base])
Возвращает строковое представление числа GMP в системе счисления base (по умолчанию, в десятичной). Возможные системы счисления — от 2 до 36.
gmp_ abs
Получение абсолютного значения числа
resource gmp_abs (resource a)
Возвращает абсолютное (то есть неотрицательное) значение числа.
gmp_sign
Получение знака числа
int gmp_sign (resource a)

Возвращает 1, если число положительное, или -1, если число отрицательное.
gmp_neg
Получение отрицательного значения числа
resource gmp_neg (resource a) Возвращает (-а).

Арифметика
gmp_add
Сложение
resource gmp_add (resource a, resource b)
Возвращает GMP число - сумму аргументов а и b.
gmp_sub
Вычитание
resource gmp_sub (resource a, resource b)
Возвращает GMP число - разность (a-b).
gmp_mul
Умножение
resource gmp_mul (resource a. resource b)
Возвращает GMP число - произведение аргументов а и b.
gmp_div
Синоним функции gmp_div_q
resource gmp_div (resource a, resource b [, int round])
gmp _div_q
Деление
resource gmp_div_q (resource a, resource b)
Возвращает результат деления а на b. Результат округляется в зависимости от указанного аргумента:

  • GMP_ROUND_ZERO - цифры после точки отбрасываются;
  • GMP_ROUND_PLUSINF - результат округляется в большую сторону;
  • GMP_ROUND_MINUSINF - результат округляется в меньшую сторону.

Имеется синоним функции - gmp_div().
См. также: gmp_div_r(), gmp_div_qr().
gmp_div_r
Получение остатка целочисленного деления
resource gn,p_div_r (resource n, resource d [. int round])
Функция сходна с gmp_div_q(). Остаток будет иметь знак аргумента n.
См. также: gmp_div_q(), gmp_div_qr().
gmp_div_qr
Деление с остатком
array gmp_div_qr (resource n, resource d [, int round])
Функция комбинирует действие функций gmp_div_q() и gmp_div_r() и возвращает массив, в котором элемент [0] — целое частное, а [1] - остаток.
$а = gmpjimt ("Ox41682I79fbf5").
$res = gmp_chv_qr ($a. "OxDEFE75");
pnntf( "Результат: частное» *s.
остаток= %s".
gmp_strval ($res[0]). gmp_strval ($res[l])):
См. также: gmp_div_q(), gmp_div_r().
gmp_mod
Получение абсолютного остатка деления
resource gmpjnod (resource n, resource d)
Функция эквивалентна gmp_div_r(), знак результата которой отбрасывается.
gmp_ divexact
Безостаточное деление
resource gmp_divexact (resource n, resource d)
Так как функция использует алгоритм «точного» деления, результат будет достоверным, только если заранее известно, что d нацело делит n.
gmp_cmp
Сравнение
int gmp_cmp (resource a, resource b)
Возвращает положительное значение, если а > b; ноль, если а = b; и отрицательное значение, если а < b.
Математика
gmp_fact
Вычисление факториала
resource gmp_fact (int a)
gmp_sqrt
Вычисление квадратного корня
resource gmp_sqrt (resource a)
gmp_sqrtrm
Вычисление квадратного корня с остатком
array gmp_sqrtrm (resource a)
Возвращает массив, в котором элемент [0] — целый квадратный корень аргумента (который также возвращается функцией gmp_sqrt()), а элемент [1] — разность между аргументом и элементом [0] в квадрате.
gmp_perfect_square
Определение, является ли число полным квадратом
bool gmp_perfect_squar~e (resource a)
Возвращает TRUE, если а является квадратом целого числа, иначе, FALSE.
См. также: gmp_sqrt(), gmp_sqrtrm().
gmp_pow
Возведение числа в степень
resource gmp_pow (resource base, int exp)
Возвращает результат возведения основания base в степень exp. Для аргументов (0,0) возвращается 1. ехр не должен быть отрицательным.
gmp_powm
Получение остатка деления степени числа
resource gmp_powm (resource base, resource exp, resource mod)
Возвращает результат: остаток от деления (основание base, возведенное в степень ехр) на mod. При отрицательном ехр результат не определен.
gmp_prob_prime
Проверка «вероятно» простого числа
int gmp_prob_pnme (resource a [, Int reps])
Функция возвращает 0, если а сложное число (имеющее более двух целых делителей). Если возвращается 1, то а, возможно, простое число. Если возвращается 2, то тогда а, без сомнения, простое число. Возможные значения аргумента reps: от 5 до 10 (по умолчанию 10) определяют качество проверки (чем больше это число, тем выше достоверность результата, то есть непринятия сложного числа за вероятно-простое).
Функция использует алгоритм вероятностного теста Мпллера-Рабина (Miller-Rabin).
gmp_ gcd
Нахождение наибольшего общего делителя
resource gmp_gcd (resource a, resource b) Возвращает всегда положительный результат.
gmp_ gcdext
Нахождение наибольшего общего делителя со множителями
array gmp_gcdext (resource a, resource b)
Возвращает в массиве значения g, s, t, такие, что a*s + b*t = g = НОД(а.b), где НОД — наибольший общий делитель.
gmp_invert
Инверсия по модулю
resource gmp_invert (resource a, resource b)
Возвращает дополнение а до значения, делящегося нацело на b. Возвращает FALSE, если результат не может быть найден.
gmp_ legendre
Получение числа Лежандра
int gmpjegendre (resource a, resource p)
Возвращает число Лежандра (Legendre symbol), р должно быть четным положительным.
gmp_jacobi
Получение числа Якоби
int gmpjacobi (resource a, resource p)
Возвращает число Якоби (Jacob! symbol), p должно быть четным положительным.
gmp_random
Генерация случайного числа
resource grap_random (int limiter)
limiter указывает длину генерируемого числа (если значение отрицательное, генерируется отрицательное число).
gmp_popcount
Получение популяции
int gmp_popcount (resource a)
Возвращает числитель популяции.
gmp_ hamdist
Вычисление дистанции
int gmp_hamdist (resource a, resource b)
Возвращает дистанцию (hamming) между а и b. Оба аргумента должны быть неотрицательными.
Бинарные операции
gmp_ and
Логическое И (AND)
resource gmp_and (resource a, resource b)
gmp_or
Логическое ИЛИ (OR)
resource gmp_or (resource a, resource Из)
gmp_xor
Логическое исключающее ИЛИ (XOR) resource gmp_xor (resource a. resource b)
gmp_setbit
Установка бита
resource gmp_setbit (resource &a, int index [, bool set_clear])
Устанавливает бит в позиции index в числе а. Аргумент set_clear указывает, в какое значение устанавливать бит: 0 или 1 (по умолчанию, в 1).
gmp_ clrbit
Сброс бита
resource gmp_c!rbit (resource &a, int index) Устанавливает бит в позиции index в числе а в значение 0.
gmp_scan0
Поиск бита 0
Oint grap_scanO (resource a, int start)
Ищет в числе а бит 0, начиная с позиции start, в сторону увеличения значимости разрядов. Возвращает позицию найденного бита.
gmp_scan1
Поиск бита 1
lint gmp_scanl (resource a, int start)
Ищет в числе а бит 1, начиная с позиции start, в сторону увеличения значимости разрядов. Возвращает позицию найденного бита.

 

 
На главную | Содержание | < Назад....Вперёд >
С вопросами и предложениями можно обращаться по nicivas@bk.ru. 2013 г. Яндекс.Метрика