php构造函数不工作
我对php构造器非常陌生,我从java就知道了。但由于某些原因,这一个没有运行。我正在学习一个教程,我似乎无法获得php构造函数不工作,php,construct,Php,Construct,我对php构造器非常陌生,我从java就知道了。但由于某些原因,这一个没有运行。我正在学习一个教程,我似乎无法获得1而只能获得0。以下是涉及的两个脚本: <?php class dbConnection{ protected $db_conn; public $db_name = 'todo'; public $db_user = 'root'; public $db_pass = ''; public $db_host = 'localhost'
1
而只能获得0
。以下是涉及的两个脚本:
<?php
class dbConnection{
protected $db_conn;
public $db_name = 'todo';
public $db_user = 'root';
public $db_pass = '';
public $db_host = 'localhost';
function connect(){
try{
$this->db_conn = new PDO("mysql:host=$this->db_host;db_name=$this->db_name",$this->db_user,$this->db_pass);
return $this->db_conn;
}
catch(PDOException $e)
{
return $e->getMessage();
}
}
}
?>
您应该尝试使用
\u construct()
代替ManageUsers()
此外,我不太确定您在构造函数中想要实现什么(请参见下面的标记):
函数ManageUsers(){
$db_connection=new dbConnection();
$this->link=$db_connection->connect();
return$this->link;//同意-您使用的方法是老式的PHP4方法-您应该使用上面解释的_construct()方法
本页介绍PHP5中的construct()和destruct()
您不能从构造函数tho返回,也许您可以将链接设置为公共属性并像这样直接访问它
$user = new ManageUsers();
$link = $user->$link;
为什么你认为你的构造函数没有运行?值得一提的是,$constructed在你的printout方法中是空的,因为那是一个局部范围变量。为了使它成为对象的一部分,两个实例都应该是$this->constructed。你的代码应该会触发几个错误消息。我想你还没有配置PHP来显示错误和消息我们盲目地编码。这是在继续之前需要解决的问题;如果没有错误消息的帮助,就不可能正确地编码。这里有一个。关于错误处理,您不应该使用try/catch
构造将异常降级为纯字符串。在Java中也是如此。这是我下面的教程最有可能的是,这段代码遗漏了一些重要的东西,因为据我所知,它只足以建立连接并回显创建新用户的尝试。如果添加了一行,则应打印1。但我的代码和教程中的代码有差异,其中…/>。function ManageUsers(){
$db_connection = new dbConnection();
$this->link = $db_connection->connect();
return $this->link; //<--?
$constructed = 'Construct'; //<--?
}
// constructor
function __construct() {
ManageUsers();
}
function ManageUsers(){
$db_connection = new dbConnection();
$this->link = $db_connection->connect();
$constructed = 'Construct';
}
$user = new ManageUsers();
$link = $user->$link;