什么时候以及为什么我应该在一个类中使用publicprivateprotected个函数和变量?它们之间有什么区别?

例如:

// Public
public $variable;
public function doSomething() {
  // ...
}

// Private
private $variable;
private function doSomething() {
  // ...
}

// Protected
protected $variable;
protected function doSomething() {
  // ...
}

推荐答案

您可以使用:

  • public范围,以使该属性/方法可从对象的任何位置、其他类和实例使用.

  • 当您希望属性/方法仅在其自己的类中可见时,范围为private.

  • 当您希望使属性/方法在扩展当前类(包括父类)的所有类中可见时,范围为protected.

如果不使用任何可见性修改器,则该属性/方法将是公共的.

More:(综合信息)

Php相关问答推荐

为什么PHP输出\n而不是实际创建一个新元素?

模型中的Laravel自定义查询字段

在Laravel Eloquent中实现一对多关系

将一个按钮添加到WooCommerce产品的管理视图中,该按钮链接到一个自定义的WebHook,并在末尾附加产品ID

如何在UML类图中可视化变量引用数组

在个人资料页面上显示个人资料图像

Woocommerce单一产品Ajax添加到带有自定义购物车项目数据的购物车

将自定义字段添加到管理产品 在 WooCommerce 3.2+ 中批量编辑

启用 WooCommerce 我的帐户付款方式,允许客户添加付款方式

WooCommerce:如果购物车中已存在产品,则增加购物车商品数量

Docker-用于部署的 PHP 应用程序映像无法在本地运行

产品页面自定义复选框可对 WooCommerce 购物车小计启用百分比折扣

使用用户元数据填写 woocommerce checkout 字段

simplexml_load_file 和 simplexml_load_string 返回具有不同编码的相同数据

无法读取某些 WordPress 主机上的 cookie

Laravel 发送邮箱问题 Swift_TransportException

防止使用woocommerce_checkout_process下单

使用现有的htaccess的PHP路由脚本

.htaccess环境变量条件不被判断

我需要获取传递到这个数组中的数据,但我没有得到它,因为在 Laravel 中数组是这样出现的