[英]Calling function in another function
我有一個函數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>';
}
}
如果用戶未登錄,則應為printContent()
你可以試試
if(!logged())
{
printContent('TITLE', 'CONTENT', 1);
}
您的logged()
函數太復雜了; $echo
和$logout
參數使邏輯極難遵循。 您應該將其簡化為這樣,非常好地做一件事:
function isLoggedIn()
{
return !empty($_SESSION['user']);
}
然后,邏輯變得非常簡單:
if (!isLoggedIn()) {
printContent('title', 'content', 1);
}
上場時間
花哨的是,您可以從5.3開始執行此操作,盡管這是可以使用匿名函數完成的非常人為的示例:
function ifLoggedIn($loggedIn, $loggedOut)
{
return empty($_SESSION['user']) ? $loggedIn() : $loggedOut();
}
$loggedIn
和$loggedOut
參數是回調參數,並根據用戶是否登錄從函數內部執行。 要使用它:
ifLoggedIn(function() {
}, function() {
printContent('TITLE', 'CONTENT', 1);
});
您正在嘗試執行一個純字符串。 采用
function1( function2() );
那和
$tmp = function2();
function1($tmp);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.