gpt4 book ai didi

php - 从使用的角度来看,私有(private)函数和保护类函数有什么区别?

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

我知道手册定义,但从实际使用的角度来看,有什么区别?你什么时候会用一个而不是另一个?

最佳答案

编辑:当您希望子类(扩展当前(或父)类的子类)能够访问父类中的方法或变量时,请使用 protected 方法。

这是 PHP Visibility Manual

private 除了变量/方法所在的类之外,其他类都看不到。

protected 可以被同一包/命名空间中的任何类看到。

手册中的代码。

<?php
/**
* Define MyClass
*/
class MyClass
{
public $public = 'Public';
protected $protected = 'Protected';
private $private = 'Private';

function printHello()
{
echo $this->public;
echo $this->protected;
echo $this->private;
}
}

$obj = new MyClass();
echo $obj->public; // Works
echo $obj->protected; // Fatal Error
echo $obj->private; // Fatal Error
$obj->printHello(); // Shows Public, Protected and Private


/**
* Define MyClass2
*/
class MyClass2 extends MyClass
{
// We can redeclare the public and protected method, but not private
protected $protected = 'Protected2';

function printHello()
{
echo $this->public;
echo $this->protected;
echo $this->private;
}
}

$obj2 = new MyClass2();
echo $obj2->public; // Works
echo $obj2->private; // Undefined
echo $obj2->protected; // Fatal Error
$obj2->printHello(); // Shows Public, Protected2, Undefined

?>

关于php - 从使用的角度来看,私有(private)函数和保护类函数有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1798543/

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