Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在另一个函数中调用函数_Php_Function - Fatal编程技术网

Php 在另一个函数中调用函数

Php 在另一个函数中调用函数,php,function,Php,Function,我有一个函数printContent(),用于打印参数和检查用户是否登录的logged() 我的观点是这样做: logged("printContent('TITLE', 'CONTENT', 1)", 1); 它不起作用。如果用户未登录,但未发生任何事情,则应printContent()。如果我尝试将return()更改为print(),它将打印文本“printContent(text…) 以下是两个功能: function logged($echo = 0, $logout = 0) {

我有一个函数
printContent()
,用于打印参数和检查用户是否登录的
logged()

我的观点是这样做:

logged("printContent('TITLE', 'CONTENT', 1)", 1);
它不起作用。如果用户未登录,但未发生任何事情,则应
printContent()
。如果我尝试将
return()
更改为
print()
,它将打印文本“printContent(text…)

以下是两个功能:

function logged($echo = 0, $logout = 0)
{    
        if($_SESSION['user']) 
        {
            if($echo)
            {
                if(!($logout)) return $echo;
                else return false;
            }
            else return true;
        }
        else
        {  
            if($logout == 1) return $echo;
            else return false;
        }
}
function printContent($title, $content, $type = 0){
    if($type == 1){
        echo '<div class="right-box">';
        if($title) echo '<h3>'.$title.'</h3>';
        echo $content.'</div>';            
    }
    else {
        echo '<div class="left-box">';
        if($title) echo '<h2>'.$title.'</h2>';
        echo '<div class="left-box-content">'.$content.'</div></div>';
    }
}
function ifLoggedIn($loggedIn, $loggedOut)
{
    return empty($_SESSION['user']) ? $loggedIn() : $loggedOut();
}
记录的函数($echo=0,$logout=0)
{    
if($\会话['user'])
{
如果($echo)
{
如果(!($logout))返回$echo;
否则返回false;
}
否则返回true;
}
其他的
{  
如果($logout==1)返回$echo;
否则返回false;
}
}
函数printContent($title,$content,$type=0){
如果($type==1){
回声';
如果($title)回显“.$title.”;
echo$内容。“;
}
否则{
回声';
如果($title)回显“.$title.”;
回显“.$content.”;
}
}
如果用户未登录,则应打印内容()

你可以试试

if(!logged())
{
printContent('TITLE', 'CONTENT', 1);
}
如果用户未登录,则应打印内容()

你可以试试

if(!logged())
{
printContent('TITLE', 'CONTENT', 1);
}
您的
logged()
函数太复杂;
$echo
$logout
参数使得逻辑非常难以遵循。你应该把它简化为这样,把一件事做得很好:

function isLoggedIn()
{
    return !empty($_SESSION['user']);
}
之后,逻辑变得非常简单:

if (!isLoggedIn()) {
    printContent('title', 'content', 1);
}
播放时间

尽管这是一个非常做作的示例,说明了匿名函数可以实现的功能,但从5.3开始,您就可以这样做:

function logged($echo = 0, $logout = 0)
{    
        if($_SESSION['user']) 
        {
            if($echo)
            {
                if(!($logout)) return $echo;
                else return false;
            }
            else return true;
        }
        else
        {  
            if($logout == 1) return $echo;
            else return false;
        }
}
function printContent($title, $content, $type = 0){
    if($type == 1){
        echo '<div class="right-box">';
        if($title) echo '<h3>'.$title.'</h3>';
        echo $content.'</div>';            
    }
    else {
        echo '<div class="left-box">';
        if($title) echo '<h2>'.$title.'</h2>';
        echo '<div class="left-box-content">'.$content.'</div></div>';
    }
}
function ifLoggedIn($loggedIn, $loggedOut)
{
    return empty($_SESSION['user']) ? $loggedIn() : $loggedOut();
}
$loggedIn
$loggedOut
参数是回调参数,根据用户是否登录从函数内部执行。要使用它:

ifLoggedIn(function() {
}, function() {
    printContent('TITLE', 'CONTENT', 1);
});
您的
logged()
函数太复杂;
$echo
$logout
参数使得逻辑非常难以遵循。你应该把它简化为这样,把一件事做得很好:

function isLoggedIn()
{
    return !empty($_SESSION['user']);
}
之后,逻辑变得非常简单:

if (!isLoggedIn()) {
    printContent('title', 'content', 1);
}
播放时间

尽管这是一个非常做作的示例,说明了匿名函数可以实现的功能,但从5.3开始,您就可以这样做:

function logged($echo = 0, $logout = 0)
{    
        if($_SESSION['user']) 
        {
            if($echo)
            {
                if(!($logout)) return $echo;
                else return false;
            }
            else return true;
        }
        else
        {  
            if($logout == 1) return $echo;
            else return false;
        }
}
function printContent($title, $content, $type = 0){
    if($type == 1){
        echo '<div class="right-box">';
        if($title) echo '<h3>'.$title.'</h3>';
        echo $content.'</div>';            
    }
    else {
        echo '<div class="left-box">';
        if($title) echo '<h2>'.$title.'</h2>';
        echo '<div class="left-box-content">'.$content.'</div></div>';
    }
}
function ifLoggedIn($loggedIn, $loggedOut)
{
    return empty($_SESSION['user']) ? $loggedIn() : $loggedOut();
}
$loggedIn
$loggedOut
参数是回调参数,根据用户是否登录从函数内部执行。要使用它:

ifLoggedIn(function() {
}, function() {
    printContent('TITLE', 'CONTENT', 1);
});

你要找的似乎是回电话

如果我理解正确,您希望仅执行printContent,如果用户已登录,是否正确


您可能需要检查此问题以了解更多信息:

您似乎在寻找的是回调

如果我理解正确,您希望仅执行printContent,如果用户已登录,是否正确


您可能需要检查此问题以了解更多信息:

您正在尝试执行普通字符串。使用

function1( function2() );
这与

$tmp = function2();
function1($tmp);

您正在尝试执行一个普通字符串。使用

function1( function2() );
这与

$tmp = function2();
function1($tmp);

“printContent('TITLE','CONTENT',1)”
是传递到$echo中的字符串。然后返回$echo,它只是一个字符串。你的
if($echo)
检查没有做你想做的事情,因为$echo是作为字符串存在的。究竟为什么字符串应该作为PHP代码计算?请注意
printContent()
没有返回数据:它只是在回显它。如果要将该函数的输出用作另一个函数的输入,则需要
返回数据。因此
logged()
函数可能会返回一个字符串,其中包含“printContent('TITLE','CONTENT',1)”。。。为什么你认为一个字符串应该返回另一个函数调用的结果,仅仅因为它包含另一个函数的名称?现在,你正在等待对建议使用
eval()
“printContent('TITLE','CONTENT',1)”
的第一个答案进行向下表决,它是一个你正在传递到$echo中的字符串。然后返回$echo,它只是一个字符串。你的
if($echo)
检查没有做你想做的事情,因为$echo是作为字符串存在的。究竟为什么字符串应该作为PHP代码计算?请注意
printContent()
没有返回数据:它只是在回显它。如果要将该函数的输出用作另一个函数的输入,则需要
返回数据。因此
logged()
函数可能会返回一个字符串,其中包含“printContent('TITLE','CONTENT',1)”。。。为什么你认为一个字符串应该返回另一个函数调用的结果,仅仅因为它包含了另一个函数的名称?现在,我们正在等待第一个建议使用
eval()
的答案,当然……如果可以简单地使用if,那么为什么回调会变得复杂呢+当然…如果你可以用if简单的话,为什么回叫会变得复杂呢+问题是,这将在运行
function1
之前运行
function2
,而这可能不是OP想要的。问题是,这将在运行
function1
之前运行
function2
,而这可能不是OP想要的。