2014-07-10 171 views
0

所以我一直在嘗試,因爲在一個小型項目最近失敗的一個測試,我創建的if語句中的功能,並嘗試使用它。我試圖在if結構內和if結構外使用它,但每次PHP給我回一個錯誤說「調用未定義的函數」。調用未定義功能問題

require 'testing.php'; 

if(isset($_POST['submit'])){ 
if(isset($_POST['name']) && !empty($_POST['name'])){ 
    if(!strpbrk($_POST['name'],'/[[email protected]#$%^*}{};:?/')){ 

    $name = htmlentities($_POST['name']); 

    function test($thename){ 
    echo $name; 
    } 

    test($name); 
    }else{ 
    echo 'Please only submit alphanumeric values and underscores.'; 
    } 
    }else{ 
    echo 'Please enter a name.'; 
    } 
} 
+0

你確定它不是抱怨'strpbrk'而不是'test'嗎? – quickshiftin

+0

是的。它特別說「調用未定義的函數測試()」 – Codeeeeee

+0

你是否試圖從'testing.php'內調用'test'? – quickshiftin

回答

0

你可能調用從內testing.phptest。簡單的方法是在您顯示的文件中註明test($name);的呼叫並觀察相同的錯誤。

如果你想在testing.php代碼利用外部定義test功能,那麼你需要加載testing.php之前定義test

function test($name){ // @note Fix the parameter too.. 
    echo $name; 
} 
require 'testing.php'; 

if(isset($_POST['submit'])){ 
if(isset($_POST['name']) && !empty($_POST['name'])){ 
    if(!strpbrk($_POST['name'],'/[[email protected]#$%^*}{};:?/')){ 

    $name = htmlentities($_POST['name']); 

    test($name); 
    }else{ 
    echo 'Please only submit alphanumeric values and underscores.'; 
    } 
    }else{ 
    echo 'Please enter a name.'; 
    } 
}