Учебник по основам PHP. PHPBeginner


Функции - часть 2


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

function process($varl. $var2. $farr) { // функция обработчик for ($f=0: $f < count($farr); $f++) echo $farr[$f]($varl.$var2)."\n". } // создать набор математических функций $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*)




Начало  Назад  Вперед