-2

php在同一目录中有以下文件:

connection.php
index.php
lib.php

相关代码connection.php

....
....
$client = 4; //something that I've defined here
....
....

相关代码index.php

require_once('connection.php');
require_once('lib.php');
....
function_search(); //function of lib.php
....
....

相关代码lib.php

class function_my_exception extends function_your_exception {

    function __construct($hint, $debuginfo=null) {
        parent::__construct($hint, 'debug', '', $hint, $debuginfo);
    }

}
function function_search(){
....
....
if ($client !=4 )
   //Do something 
}

当我运行时index.php,我不断收到错误Undefined variable $client" in line xxx of lib.php

4

2 回答 2

4

这是因为在函数内部function_search()

$client不可用!

您可以将其作为参数传递给函数

function function_search($client)
{
...
}

当您调用该函数时,您将 $client 传入

function_search($client);

或者您可以使用global关键字使其在函数中可用

更新:应该避免使用这种全局方法,因为代码中的某处可能$client会发生更改,并导致脚本中出现奇怪的行为甚至错误,通常最好将参数传递给函数,因为您可以更好地控制变量.

function function_search()
{
    global $client;
...
}
于 2013-06-06T09:38:31.503 回答
0

将您的 lib.php 编辑为:

class function_my_exception extends function_your_exception {

    function __construct($hint, $debuginfo=null) {
        parent::__construct($hint, 'debug', '', $hint, $debuginfo);
    }
// delete it here

    function function_search(){
    ....
    ....
    if ($client !=4 )
       //Do something 
    }

} // add it here

请注意,您}在函数 __construct 之后有一个关闭。它必须在这些功能的末尾。

于 2013-06-06T09:38:13.310 回答