脚本宝典收集整理的这篇文章主要介绍了PHP类范围,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
class MysqLDB{ public $connection; function __construct(){ //connects to database } function login($username,$password){ //queries database... } }
class Session{ //VARiables //constructor function PRocessLOGin($username,$password){ $database->login($username,$password); }
然后我有两个类声明:
$database = new MysqLDB(); $session = new Session();
无论我把这些语句放在哪个类中,我仍然会得到同样的错误:
PHP Notice: Undefined variable: database in C:\inetpub\wwwroot\cmu\include\session.PHP on line 52 PHP Fatal error: Call to a member function login() on a non-object in C:\inetpub\wwwroot\cmu\include\session.PHP on line 52
我已经看到一些建议,建议将新数据库对象放在Session类声明中,但我想避免这样做,因为我在代码中使用数据库类的其他几个地方而且我不想打开多个连接到数据库.
function processlogin($username,$password){ global $database; $database->login($username,$password); }
或者使用变量作为构造函数的参数,并记住类Session中的数据库对象引用:
class Session{ private $database; function __construct($database){ $this->$database = $database; } function processlogin($username,$password){ $this->database->login($username,$password); } }
然后你打电话:
$database = new MysqLDB(); $session = new Session($database);
以上是脚本宝典为你收集整理的PHP类范围全部内容,希望文章能够帮你解决PHP类范围所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。