gpt4 book ai didi

php - 关于 PHP 中的 OO 和类的几个问题

转载 作者:可可西里 更新时间:2023-11-01 00:11:58 25 4
gpt4 key购买 nike

我正在学习 OO 和类,我有几个关于 PHP 中的 OO 和类的问题

  1. 据我了解,扩展另一个类的类仅意味着扩展另一个类的类可以访问它所扩展的类的变量/属性和函数/方法。这是正确的吗?

  2. 我知道静态方法或属性基本上与类外的过程函数或变量相同,几乎可以在任何地方使用。这是正确的吗?

  3. Public 表示任何类都可以访问它,Private 表示只有封装在其中的类或从其所有者扩展的类才能访问和使用。这是正确的吗?

最佳答案

1) 是的,没错。子类继承其父类的任何 protectedpublic 属性和方法。任何声明为 private 的东西都不能使用。

2) 这是真的。只要加载了类(这与之前的自动加载问题相得益彰),您就可以通过范围解析运算符 (::) 访问静态方法,如下所示:ClassName::methodName();

3) public 的意思是正确的,但是正如我之前提到的,private 方法只能由它们声明的类使用。

class parentClass
{
private $x;
public $y;
}

class childClass extends parentClass
{
public function __construct() {
echo $this->x;
}
}

$z = new childClass();

上面的代码将导致触发一个注意错误,因为 $x 不能被 childClass 访问。

Notice: Undefined property: childClass::$x

如果 $x 被声明为 protected,那么 childClass 将具有访问权限。编辑:声明为 protected 的属性可由声明它的类和任何扩展它的子类访问,但不能访问“外部世界”。它是 publicprivate 之间的一个很好的中间体。

关于php - 关于 PHP 中的 OO 和类的几个问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1408848/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com