传递构造函数变量

时间:2015-07-15 17:45:00

标签: php constructor extends

所以我有一个扩展另一个类的类。这是我的代码如下。主要类是模型。然后我有另一个扩展Method的类create_user_model。

//Model Class//
class Model {

private $connection;
private $connstring;

public function __construct(){

$this->connection = new createConnection();         //create connection object

$this->connstring = $this->connection->connectToDatabase();

}}

然后我有我的创建用户模型扩展模型。

/// Create_User_Model///

class Create_User_Model extends Model {
private $connection;
private $connstring;
private $sql;

function __construct() {
  parent:: __construct();
}

public function create_user(){

//Want to get rid of these two lines and get $this->connstring from constructor//
$this->connection = new createConnection(); //create connection object
$this->connstring = $this->connection->connectToDatabase();

$sql = "INSERT INTO customers (first_name, last_name)
VALUES ('John', 'James')";

if ($this->connstring->query($sql) === TRUE) {
     echo "New record created successfully";
 } else {
     echo "Error: " . $sql . "<br>" . $this->connstring->error;
 }
 }
 }

注意我是如何在Create_User_Model的构造函数中构造Model的。所以现在我应该在函数create_user中访问变量$ this-&gt; connection和$ this-&gt; connstring(或者至少我想到的),但我不知道如何访问它们。你可以看到我必须在函数create_user中再次创建一个连接对象,然后创建一个connstring,然后就没有构造函数了。我想知道如何从构造函数中获取此信息,以便我可以在create user函数中取出前两行。希望我所要求的是有道理的。谢谢你的阅读。

1 个答案:

答案 0 :(得分:1)

私有变量只能在声明它们的类中使用。 受保护的变量可以在它们自己的类和任何类扩展中使用。 公共变量可以从任何地方访问。

将模型中的属性从私有更改为受保护。