Php 如何在另一个类的变量上绑定结果?

Php 如何在另一个类的变量上绑定结果?,php,Php,我有这样一个问题: if($stmt = $this->db->prepare("SELECT * FROM rol WHERE sug = ?")) { $stmt->bind_param("s", $role_slug); $stmt->bind_result($this->personal_model->sug); ... 我已经在这个文件中导入了类Personal\u model,该类的sug变量声

我有这样一个问题:

if($stmt = $this->db->prepare("SELECT * FROM rol WHERE sug = ?"))
  {
        $stmt->bind_param("s", $role_slug);
        $stmt->bind_result($this->personal_model->sug);
        ...
我已经在这个文件中导入了类
Personal\u model
,该类的
sug
变量声明如下:

private sug;

在教室里。我应该将private更改为public,或者有更好的方法操作另一个类的变量?

您可以添加更改类的private属性的方法,如:

class TEST
{

    private $sug;

    public function changeSlug($sug)
    {
        $this->sug = $sug;
    }
}
你以后可以像这样使用它

$personalModel = new TEST();
$newSug = 'new sug';
$personalModel->changeSlug($newSug);

但是私有变量可以是公共的,也可以是非安全的?在我看来,类中应该始终具有私有属性。对象中状态的更改应始终由函数进行。在此函数中,您可以验证给定变量是否有效,然后才更改属性的值,如果无效,您可以抛出异常,这是最佳解决方案?是的。对象应验证具有的数据。如果您在该对象之外的其他地方更改对象的属性,则无法确定该数据是否正确。