Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: передача функции в качестве параметра

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
dimalogin
Отправлено: 06 Апреля, 2007 - 22:47:41
Post Id



Новичок


Покинул форум
Сообщений всего: 24
Дата рег-ции: Апр. 2007  
Откуда: Санкт-Петербург


Помог: 0 раз(а)




Здраствуйте, есть функция:
PHP:
скопировать код в буфер обмена
  1. <?
  2. function gt($r)
  3. {
  4. global $p;
  5. global $HTTP_GET_VARS;
  6. if (isset($HTTP_GET_VARS['page'])) {$p = $HTTP_GET_VARS['page'];}
  7. if($p == 0) {$p=1; print("<a href="{$_SERVER['PHP_SELF']}?page=$p" class="home_end">[ свернуть ]</a>"); $r;}
  8. else {$p=0; print("<a href="{$_SERVER['PHP_SELF']}?page=$p" class="home_end">[ развернуть ]</a>");}
  9. }
  10.  

как сделать, чтоб в качестве параметра $r передать функцию, т.е., чтоб эта функция могла вызывать другую функцию при $p = 0;
 
 Top
UserID
Отправлено: 06 Апреля, 2007 - 23:27:17
Post Id



Магистр JavaScript


Покинул форум
Сообщений всего: 151
Дата рег-ции: Авг. 2006  


Помог: 0 раз(а)




dimalogin пишет:
Здраствуйте, есть функция:
function gt($r)
{
global $p;
global $HTTP_GET_VARS;
if (isset($HTTP_GET_VARS['page'])) {$p = $HTTP_GET_VARS['page'];}
if($p == 0) {$p=1; print("<a href="{$_SERVER['PHP_SELF']}?page=$p" class="home_end">[ свернуть ]</a>"); $r;}
else {$p=0; print("<a href="{$_SERVER['PHP_SELF']}?page=$p" class="home_end">[ развернуть ]</a>");}
}
как зделать, чтоб в качестве параметра $r передать функцию, т.е., чтоб эта функция могла вызывать другую функцию при $p = 0;


Честно говоря... на ум приходит только два варианта:
Вариант 1
PHP:
скопировать код в буфер обмена
  1.  
  2. // Т.е. функция что-то возращает в $r
  3. $r = function name_1();
  4.  
  5. function name_2($r) {
  6. echo $r;
  7. }
  8.  


Вариант 2:
PHP:
скопировать код в буфер обмена
  1.  
  2. function name_1()
  3. {}
  4.  
  5. function name_2()
  6. {
  7.     if($p == 0) {
  8.         name_1();
  9.     }
  10. }
  11.  
 
 Top
valenok Модератор
Отправлено: 07 Апреля, 2007 - 05:40:23
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




А вы уверены что вам нужен такой подход?


-----
Truly yours, Sasha.
 
My status
 Top
UserID
Отправлено: 07 Апреля, 2007 - 05:47:49
Post Id



Магистр JavaScript


Покинул форум
Сообщений всего: 151
Дата рег-ции: Авг. 2006  


Помог: 0 раз(а)




valenok
Поддерживаю вопрос.
 
 Top
valenok Модератор
Отправлено: 07 Апреля, 2007 - 05:51:31
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




global $HTTP_GET_VARS;
И так глобальный массив и указывать на его глобальность смысла не имеет.
А во вторых это устаревшее обозначение глобального массива $_GET

$_GET['page']\n\n(Добавление)
Свернуть / Развернуть

Разворачивающееся меню на пхп делать не стоит.
Я бы на вашем месте либо сразу отдал всю страницу, а потом просто при помощи js сворачивал бы или разворачивал часть от неё которую нужно скрыть, либо запрашивал позже аджаксом.

Также на сколько мне известно конструкция языка echo работает быстрее ф-ции print.
Результат выполнения в обоих случаях почти идентичен а значит имеет смысл оптимизация кода .

А тут повторюсь ещё разок - не делайте разворачивающееся меню на пхп.


-----
Truly yours, Sasha.
 
My status
 Top
evgenijj
Отправлено: 13 Апреля, 2007 - 11:06:55
Post Id



Участник


Покинул форум
Сообщений всего: 1212
Дата рег-ции: Авг. 2006  
Откуда: Москва


Помог: 10 раз(а)




valenok пишет:
global $HTTP_GET_VARS;
И так глобальный массив и указывать на его глобальность смысла не имеет.

Не совсем так. Этот массив не виден внутри функций, в отличие от $_GET. Поэтому массив $_GET называют суперглобальным.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB