2014-12-28 180 views
0

我做的功能,但它不想工作,我不知道爲什麼還是什麼錯了,因爲我覺得一切都很好功能不起作用(不打印任何東西)

function ifemptySet($who,$set){ 
    if(empty($who)){ 
     $who = "$set"; 
    } 
} 


if(isset($_POST['saveinfosite'])){ 
    $site_name = strip_tags($_POST['site_name']); 


    ifemptySet($site_name,"null"); 


    echo $site_name; 




    } 

當我將「輸入」設置爲空時,php(回顯)不會打印任何內容,但是當我在「輸入」中寫入內容時,我只顯示輸入內容

(Sorry for my english )

+0

調用函數後的分號表示它不執行任何操作:'ifemptySet($ site_name,「null」) echo $ site_name; '不是函數實際上做任何事情來返回值 –

+0

它不清楚你真正想要什麼。你的ifemptySet函數不會返回任何東西,所以如果你把它放在裏面,如果條件不起作用。 –

回答

1

你只需要你的函數頭改成這樣:

function ifemptySet(&$who,$set){ 
        //^See here! Passed by reference 
    if(empty($who)){ 
     $who = "$set"; 
    } 
} 

你也可以用回像這樣做:

function ifemptySet($who,$set){ 
    if(empty($who)){ 
     return $who = "$set"; 
    } 
    return $who; 
} 

欲瞭解更多信息,請參閱: http://php.net/manual/en/language.references.pass.php

+0

非常感謝你,但是什麼「&」呢! – user3356666

+0

@ user3356666歡迎您!我用鏈接更新了我的答案!你通過引用傳遞參數! – Rizier123

+0

@ user3356666你也可以接受&upVote的答案如何最大限度的幫助你,解決你的問題! (請參閱:http://meta.stackexchange.com/q/5234也是2分鐘的遊覽:http://stackoverflow.com/tour) – Rizier123

0

將該值從ifemptySet() &分配給$site_name。可以試試這個

function ifemptySet($who,$set){ 
    return $who ? $who : $set; 
} 

if(isset($_POST['saveinfosite'])){ 
    $site_name = strip_tags($_POST['site_name']); 
    $site_name = ifemptySet($site_name, "null"); 
    echo $site_name; 
}