PHP Class - return __construct 中的行 ID 并始终引用它
PHP Class - return a row ID in the __construct and always reference that
尝试使用 classes 并将其用作对象。
我正在将多个函数转换为使用一个函数 class。这 class 是给客户的。
我想做的是创建新的客户对象:
$customer = new Customer($customer_info);
我的 class 目前看起来:
class Customer {
private $customer_info;
private $mysqli;
function __construct(Array $customer_info, Mysqli $mysqli) {
$this->mysqli = $mysqli;
$this->customer_info = $customer_info;
$result = $mysqli->query("SELECT * FROM `customers` WHERE id = 33");
$customerArray = array();
while ($customer = $result->fetch_object()) {
$customerArray[] = array(
'id' => $customer->id,
'first_name' => $customer->first_name,
'last_name' => $customer->last_name,
'email' => $customer->email
);
}
$customer_ID = $customerArray->id;
//return var_dump($customerArray);
}
function getCustomerId() {
return "id:$customer_ID";
}
}
当我创建一个新的客户对象时,我正在传递信息,然后我想用传入的新客户信息数组插入一行或更新当前一行。
很好,我已经在另一个函数的其他地方完成了。
但是,在此之后我希望能够对该对象使用许多功能。
例如:
$customer = new Customer($customer_info); // create / update
$customer = customer->getCustomerID();
我希望 getCustomerID 函数只是 return 启动新对象时创建/更新的数据库行的 ID。在我的 class 目前你可以看到我是如何尝试设置一个值然后在函数中使用它的......但我确信那不是它的工作方式。
我用过 Laravel 并希望它的工作方式类似于 classes 在那里的工作方式。
谢谢。
你必须创建 Class 个变量
class Customer {
private $customer_info;
private $mysqli;
public $customer_ID;
function __construct(Array $customer_info, Mysqli $mysqli) {
$this->mysqli = $mysqli;
$this->customer_info = $customer_info;
$result = $mysqli->query("SELECT * FROM `customers` WHERE id = 33");
$customerArray = array();
while ($customer = $result->fetch_object()) {
$customerArray[] = array(
'id' => $customer->id,
'first_name' => $customer->first_name,
'last_name' => $customer->last_name,
'email' => $customer->email
);
}
$this->customer_ID = $customerArray->id;
//return var_dump($customerArray);
}
function getCustomerId() {
return $this->customer_ID;
}
}
尝试使用 classes 并将其用作对象。
我正在将多个函数转换为使用一个函数 class。这 class 是给客户的。
我想做的是创建新的客户对象:
$customer = new Customer($customer_info);
我的 class 目前看起来:
class Customer {
private $customer_info;
private $mysqli;
function __construct(Array $customer_info, Mysqli $mysqli) {
$this->mysqli = $mysqli;
$this->customer_info = $customer_info;
$result = $mysqli->query("SELECT * FROM `customers` WHERE id = 33");
$customerArray = array();
while ($customer = $result->fetch_object()) {
$customerArray[] = array(
'id' => $customer->id,
'first_name' => $customer->first_name,
'last_name' => $customer->last_name,
'email' => $customer->email
);
}
$customer_ID = $customerArray->id;
//return var_dump($customerArray);
}
function getCustomerId() {
return "id:$customer_ID";
}
}
当我创建一个新的客户对象时,我正在传递信息,然后我想用传入的新客户信息数组插入一行或更新当前一行。
很好,我已经在另一个函数的其他地方完成了。
但是,在此之后我希望能够对该对象使用许多功能。
例如:
$customer = new Customer($customer_info); // create / update
$customer = customer->getCustomerID();
我希望 getCustomerID 函数只是 return 启动新对象时创建/更新的数据库行的 ID。在我的 class 目前你可以看到我是如何尝试设置一个值然后在函数中使用它的......但我确信那不是它的工作方式。
我用过 Laravel 并希望它的工作方式类似于 classes 在那里的工作方式。
谢谢。
你必须创建 Class 个变量
class Customer {
private $customer_info;
private $mysqli;
public $customer_ID;
function __construct(Array $customer_info, Mysqli $mysqli) {
$this->mysqli = $mysqli;
$this->customer_info = $customer_info;
$result = $mysqli->query("SELECT * FROM `customers` WHERE id = 33");
$customerArray = array();
while ($customer = $result->fetch_object()) {
$customerArray[] = array(
'id' => $customer->id,
'first_name' => $customer->first_name,
'last_name' => $customer->last_name,
'email' => $customer->email
);
}
$this->customer_ID = $customerArray->id;
//return var_dump($customerArray);
}
function getCustomerId() {
return $this->customer_ID;
}
}