Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Ссылка на фукцию
 
 автор: nill   (15.02.2008 в 01:21)   письмо автору
 
 

У меня есть функция с кучей параметров которые иногда нужно править
и эту фукцию надо вызывать несколько раз в файле

можно как нибудь сделать ссылку на фукцию чтобы параметры передавались в функцию один раз а потом просто писать ссылку на нее ??

   
 
 автор: exp   (15.02.2008 в 02:50)   письмо автору
 
   для: nill   (15.02.2008 в 01:21)
 

что-бы не обязательно передавать парамеиры делается как-то так
<?
function tst($str ''$flag 0$num 0)
{

 static 
$num_2 11111;
 static 
$flag_2 0;
 static 
$str_2 '';
 
 if (!empty(
$str)) $str_2 $str;
 if (
$num 0$num_2 22222;
  if (
$flag$flag_2 = ($flag_2) ? ;
 
  echo 
$str_2 '<br />' $num_2 '<br />' $flag_2 '<br />' "\n"
   
"<hr />\n";
}

tst();
tst('odin'1);
tst('dva');
tst('tri'11);
tst();
?>
а так лучше использовать global, передавать параметры по ссылке.

   
 
 автор: nill   (15.02.2008 в 03:16)   письмо автору
 
   для: exp   (15.02.2008 в 02:50)
 

не очень понятно
у меня переменные передаваемые функции (они же параметры) уже заданы

то есть я не могу писать

function tst($str = '', $flag = 0, $num = 0)

только
function tst ($str, $flag $num)

и больше никак

   
 
 автор: exp   (15.02.2008 в 13:03)   письмо автору
 
   для: nill   (15.02.2008 в 03:16)
 

по ссылке можно передавать параметры например
xxxxx(&$param);
тогда если этой переменной внутри функции присвоится какое-то значение , фактически оно присвоится этой переменной вне функции.
аналогично делается если внутри функции global.

а static создаёт статические переменные внутри функции
которые на протяжении работы скрипта сохраняют значение при повторных вызовах
но занимает память
<? 
function tst($str 0$flag 0

 static 
$flag_2 ''
 static 
$str_2 ''
  
 if (
$str$str_2 $str
  if (
$flag$flag_2 $flag 
  
  echo 
$str_2 ' мыла ' $flag_2 '<br />' "\n" 
   
"<hr />\n"


tst('мама''раму'); 
tst(); 
tst('''папу'); 
tst(); 
tst('тётя'); 
?>

   
 
 автор: bronenos   (15.02.2008 в 17:37)   письмо автору
 
   для: nill   (15.02.2008 в 01:21)
 

Если вызывать несколько раз с одинаковыми параметрами - юзайте global и ниче не передавайте

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования