2014-07-10 213 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.'; 
    } 
}