2013-10-07 37 views
0

这可能很奇怪,可能不起作用,但在放弃这个想法之前我想检查一下。实质上,我试图将函数的结果用作另一个函数的参数之一。例如 - function1($ param1,function2($ param1));.我所包含的代码输出了我想要的所有内容,我遇到的唯一问题是它以错误的顺序输出它 - 而不是输出:标识,h2,表单,h2,表单;它输出:form,h2,logos,form,h2。在PHP中使用函数作为另一个函数的参数

// Display list 
function ul($c, $p){ 
     echo '<ul class="'.$c.'">'.$p.'</ul>'; 
    } 
    // Display list item 
    function li($c, $p){ 
     echo '<li class="'.$c.'">'.$p.'</li>'; 
    }  
// Display navigation 
     function nav(){ 
      require 'strings.php'; 
      // If the user is not logged in, display the login form 
      if(!isset($_SESSION[$uss])){ 
       $nav = li('', require_once 'log_in.php'); 
      // Otherwise provide the user information and navigation 
      }else{ 
       $nav = li($lks, $_SESSION[$uss][$uns]). 
         li($dss, $uss.' Id: '.$_SESSION[$uss]['id']). 
         li($dss, $uss.' Type: '.$_SESSION[$uss]['type']). 
         '<div id="display_projects_container">'. 
         require_once('display_projects.php'). 
         '</div>'. 
         li($lks, '<a href="newsfeed.php" class="'.$lks.'">News Feed</a>'). 
         li($dss, 'Check for updates.'). 
         li($lks, '<a href="task_list.php" class="'.$lks.'">Task List</a>'). 
         li($dss, 'Tasks to be completed.'). 
         li($lks, '<a href="logout.php" class="'.$lks.'">Log Out</a>'). 
         li($dss, 'Time for a burrito!'); 
      } 
      echo '<div id="left_column"> 
       <!--After Breakpoint Logo--> 
       <img src="logo.png" class="after_breakpoint_logo" />'; 
       ul('navigation', '<!--Before Breakpoint Logo-->'. 
           li('before_breakpoint_logo', '<a href="index.php"> 
     <img src="logo.png" class="before_breakpoint_logo" /></a>'). 
           $nav); 
       echo '</div><div id="content_container"><div id="content">'; 
     } 

是否有解决此问题的方法?或者它是不可能做到的?

+0

没有看到什么'li'和'ul'做,我不知道你问什么 –

+0

我已经添加了李和UL功能到现在的代码。我认为这个问题是由于这些功能回应了他们的结果。我只是不知道该怎么做。 – phpstudent

回答

1

问题是,您正在将结果回显到输出。相反,你应该使用你的liul函数来建立一个字符串,然后这个字符串会被调用者回应或按照自己的意愿去做。因此,你的ulli功能应该成为:

function ul($c, $p){ 
    return '<ul class="'.$c.'">'.$p.'</ul>'; 
} 

function li($c, $p){ 
    return '<li class="'.$c.'">'.$p.'</li>'; 
}  

你会再调用li多次,你正在做的设置$nav。然后把它放在一起,在最后的通话你会:

echo ul('navigation', '<!--Before Breakpoint Logo-->'. 
    li('before_breakpoint_logo', '<a href="index.php"> 
     <img src="logo.png" class="before_breakpoint_logo" /></a>'). $nav); 
相关问题