|
|
|
|
|
для: а-я
(01.08.2009 в 13:39)
| | видать это ссылка на функцию... и таким образом можно передавть переменные в функцию? | |
|
|
|
|
|
|
|
для: а-я
(01.08.2009 в 13:41)
| | Функция это
<?php
function hello ( $name )
{
echo'Привет, '.$name.', я твоя функция!';
}
hello ( 'Вася' );
?>
|
Что выдаст:
Привет, Вася, я твоя функция!
|
| |
|
|
|
|
|
|
|
для: Vyacheslav Tsv.
(01.08.2009 в 14:43)
| | нет, меня запутал "$" -
$zzz($z,$y) | |
|
|
|
|
|
|
|
для: а-я
(01.08.2009 в 13:39)
| | В переменной $zzz находится имя функции, подлежащая вызову.
<?
$func = 'htmlspecialchars';
print $func('<script>alert("document.cookies");</script>');
// код выше эквивалентен следующей строке
print htmlspecialchars('<script>alert("document.cookies");</script>');
|
Такая запись применяется когда имя используемой функции становится известно только во время выполнения скрипта. Такая запись подходит и для классов.
<?
switch ( $_GET['action'] ) {
case 'user': $class = 'userController'; break;
case 'admin': $class = 'adminController'; break;
default: $class = 'commonController';
}
$func = 'printHelloString';
$c = new $class($_GET['login'], $_GET['password']);
$c->$func();
|
Или вот ещё более реальный пример.
<?
// ...
if ( $config['database'] == 'mysql' ) {
$db = 'mysqlDB';
} elseif ( $config['database'] == 'mssql' ) {
$db = 'mssqlDB';
}
$dbc = new $db($host, $user, $pwd);
| Этот код подволяет прозрачно переключать СУБД, с которой работает скрипт. | |
|
|
|
|
|
|
|
для: Саня
(01.08.2009 в 15:05)
| | спасибо за полную инфу) просто я как-то привык в таких случаях использовать call_user_func() | |
|
|
|