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
Форумы портала PHP.SU :: Версия для печати :: передача функции в качестве параметра
Форумы портала PHP.SU » PHP » Программирование на PHP » передача функции в качестве параметра

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

1. dimalogin - 06 Апреля, 2007 - 22:47:41 - перейти к сообщению
Здраствуйте, есть функция:
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;
2. UserID - 06 Апреля, 2007 - 23:27:17 - перейти к сообщению
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.  
3. valenok - 07 Апреля, 2007 - 05:40:23 - перейти к сообщению
А вы уверены что вам нужен такой подход?
4. UserID - 07 Апреля, 2007 - 05:47:49 - перейти к сообщению
valenok
Поддерживаю вопрос.
5. valenok - 07 Апреля, 2007 - 05:51:31 - перейти к сообщению
global $HTTP_GET_VARS;
И так глобальный массив и указывать на его глобальность смысла не имеет.
А во вторых это устаревшее обозначение глобального массива $_GET

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

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

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

А тут повторюсь ещё разок - не делайте разворачивающееся меню на пхп.
6. evgenijj - 13 Апреля, 2007 - 11:06:55 - перейти к сообщению
valenok пишет:
global $HTTP_GET_VARS;
И так глобальный массив и указывать на его глобальность смысла не имеет.

Не совсем так. Этот массив не виден внутри функций, в отличие от $_GET. Поэтому массив $_GET называют суперглобальным.

 

Powered by ExBB FM 1.0 RC1