PHP 更改方法/函数可见性

标签 php oop

我正在尝试编写一个 PHP 类,在其中我将一些方法的可见性从 protected 更改为公共(public)。我相信我记得你可以用 C++ 做到这一点,但我做了一些搜索,但我没有想出任何关于 PHP 的东西。有谁知道这在 PHP 中是否可行?

例如,假设这个类:

 class ABC {
     protected function foo() {
          // Do something
     }
  }

  class DEG extends ABC {
      // can I make foo public now?
  }

最佳答案

您可以像这样从基类派生时更改成员的可见性:

class Base
{
    protected function foo() {}
}

class Derived extends Base
{
    public function foo() { return parent::foo(); }
}

您也可以对属性执行相同的操作(将 protected 属性重新定义为 public)。

但是,请注意,如果基础属性是 private,那么您实际上不会增加​​其可访问性,而是声明一个具有相同名称的新属性。这不是函数的问题,因为如果您尝试调用 private 基方法,您会立即收到运行时错误。

关于PHP 更改方法/函数可见性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16877875/

相关文章:

php 文件在实时服务器上显示错误

sockets - keepalive & fastcgi_keep_conn 开启时 Nginx+php-fpm 出错

php - 如何告诉 symfony 加载我的自定义 routing.yml 配置

java - 登录成功后如何获取用户名?

php 函数全局定义的变量不适用于 Yii

php - 我如何在 Laravel 5.2 中延迟工作?

c++ - 如何继承方法 operator=、clone 和 dispose

java - super(variableName) 之间的区别;和 super.variableName

php - 面向对象 PHP 中的 $this 变量和变量作用域

ruby - 在Ruby中, `self.i`和 `@i`之间有区别吗?