2014-02-18 35 views
-2

我想把下面的代码放入一个函数,因为我需要使用它很多次,但有一个变量($主题),但它似乎并不正在工作。如果我从函数中移除它并运行它,它可以正常工作,但一进入函数并被调用它就会中断,所以我不确定代码本身有什么问题。我是使用PHP函数的新手,但是我需要传递一切还是可以访问函数以外的变量,例如上面定义的$ connect和$ id变量?PHP工作以外的功能,但不会工作内功能

function count($subject){ 

    $getCount = $connect->prepare('SELECT count(*) FROM entries WHERE uid = :id AND subject = :subject'); 
    $getCount->execute(array(
     ':id' => $id, 
     ':subject' => $subject 
    )); 
    $rowCount = $getCount->fetchColumn(); 

    return $rowCount; 
} 

echo count("English"); 
+0

可能的范围问题。尝试在此行后面添加'global $ connect;'函数count($ subject){' – Latheesan

+0

尝试重命名函数 – ponciste

+0

Cheers guys,事实证明这是一个范围问题。我认为上面的函数的所有PHP变量是全局的,但它似乎没有。 – burg93

回答

1

$connect在函数内部不再可访问。一个简单的,但糟糕的解决将是这样的:

function count($subject){ 
    global $connect 

一个更好的解决将是您在$connect变量发送到功能:

function count($subject, $connect){ 

,改变你的函数调用

count("The subject", $connect) 
+0

对不起,看来是人类已知的最简单的问题!由于我所有的变量都直接在函数上面定义,我假设它们都被定义为PHP中的全局变量。它通过了必要的变量后,现在完美的工作。谢谢。 – burg93

+0

@ burg93,听起来你可能想花一些时间阅读关于[variable scope](http://php.net/manual/en/language.variables.scope.php)的PHP文档。 –

+0

@MarkParnell完美谢谢,我现在就读一读。 – burg93