在PHP类上设置作为数组的私有属性失败

在PHP类上设置作为数组的私有属性失败,php,object,Php,Object,我在PHP类上设置私有属性时遇到问题,正在调用my _uSet()方法。但是,当我对属性(该属性是数组)执行此操作时,它会首先执行my _uGet()方法,该方法会导致ser不可用:/ $this->person['name'] = 'perro'; 简单地说,不起作用,关于这个主题有什么想法吗?解决它,问题是我试图在我的类中设置一个私有变量,我不明白为什么如果我扩展PHP不让我接触这个属性 为了纠正这个问题,我刚刚将属性从private改为protected解决了这个问题,问题是我试图

我在PHP类上设置私有属性时遇到问题,正在调用my _uSet()方法。但是,当我对属性(该属性是数组)执行此操作时,它会首先执行my _uGet()方法,该方法会导致ser不可用:/

$this->person['name'] = 'perro';

简单地说,不起作用,关于这个主题有什么想法吗?

解决它,问题是我试图在我的类中设置一个私有变量,我不明白为什么如果我扩展PHP不让我接触这个属性


为了纠正这个问题,我刚刚将属性从private改为protected解决了这个问题,问题是我试图在我的类中设置一个private变量,我不明白为什么如果我扩展PHP不让我接触这个属性


为了纠正这个问题,我刚刚将属性从private更改为protected,如果属性是private,如果完全正常,则无法从子类中看到它(无论是读还是写):
private
表示您将属性private更改为它在中定义的类

这就是私有和受保护的区别:

  • private=仅对声明它的一个类可访问
  • protected=可从您要声明的类型(超级或子类)“是”类的任何类访问
  • 公共=任何人都可以访问
有关PHP的更多信息,请参阅手册中的

如果需要的话,你可能会在网上找到更多的信息:它是面向对象编程的基础之一,在其他语言中也是如此(例如C++)



例如,搜索诸如“可见性”、“封装”或“信息隐藏”之类的关键字——与OOP/面向对象编程相关,如果属性是私有的,则无法看到它(无论是读还是写)如果完全正常,则来自子类:
private
表示您将属性设置为private,以定义它所在的类

这就是私有和受保护的区别:

  • private=仅对声明它的一个类可访问
  • protected=可从您要声明的类型(超级或子类)“是”类的任何类访问
  • 公共=任何人都可以访问
有关PHP的更多信息,请参阅手册中的

如果需要的话,你可能会在网上找到更多的信息:它是面向对象编程的基础之一,在其他语言中也是如此(例如C++)



例如,搜索诸如“可见性”、“封装”或“信息隐藏”之类的关键词——与OOP/面向对象编程相关

您能展示_set()方法吗?您能展示更多的代码吗?像一个小的测试用例一样,问题重现了吗?还要确保您的错误报告级别是这样的,以便显示E_通知错误(这可能真的对您有帮助);最后,您确定类中存在“person”属性吗?能否显示_set()方法?能否显示更多的代码?像一个小的测试用例一样,问题重现了吗?还要确保您的错误报告级别是这样的,以便显示E_通知错误(这可能真的对您有帮助);最后,您确定类中存在“person”属性吗?这是私有属性的定义。只有定义私有属性的类才能更改/访问其内容。受保护的属性允许子类修改/访问它。我刚刚看到帕斯卡·马丁很好地解释了这种差异,这就是私有财产的定义。只有定义私有属性的类才能更改/访问其内容。受保护的属性允许子类修改/访问它。刚刚看到帕斯卡·马丁很好地解释了这个差异。