『壹』 php受保护的类和私有类什么区别

受保护的继承后可以访问,私有的只能在该类中访问,不会被继承访问
class Man{
protected $name='lee';//受保版护
private $age=123;//私有
function __construct(){
echo $this->name;//lee
echo $this->age;//123

}

}
class Girl extends Man{
function __construct(){
echo $this->name;//lee
echo $this->age;//不会出权现123,

}

}

new Man();

new Girl();

『贰』 [php]private public protected 三者没弄明白

public 表示全局,类内部外部子类都可以访问;

private表示私有的,只有本类内部可以使用;

protected表示受保护的,只有本类或子类或父类中可以访问;

<?
//父类
class father{
public function a(){
echo "function a";
}
private function b(){
echo "function b";
}
protected function c(){
echo "function c";
}
}
//子类
class child extends father{
function d(){
parent::a();//调用父类的a方法
}
function e(){
parent::c(); //调用父类的c方法
}
function f(){
parent::b(); //调用父类的b方法
}

}
$father=new father();
$father->a();
$father->b(); //显示错误 外部无法调用私有的方法 Call to protected method father::b()
$father->c(); //显示错误 外部无法调用受保护的方法Call to private method father::c()

$chlid=new child();
$chlid->d();
$chlid->e();
$chlid->f();//显示错误 无法调用父类private的方法 Call to private method father::b()
?>

『叁』 PHP私有属性继承问题

你设置了 private $Pname; 为私有变量 就导致了你的派生类是无法访问父类的成员可以使用专 protected $Pname 这样就可以使得派生属类和基类都能范围该类的成员。 ===你初始化$student=new Student('1','zhangsan','18','男','9月23');后 不用重载parent::IT(); 这样只能echo出父类的那句话。。你要的是覆盖的效果 所以直接echo "$this->Pname 的工作是学生<br>"; 就可以了

『肆』 我想输出php类中的私有属性的值,怎么输出不出来呢

私有属性无法在实例化的时候输出,只能在类的内部输出

『伍』 private 在PHP里到底有什么用

主要是编码时候的引用与封装, 工作中一般别的地方用不到的变量函数就用private, 减少找代码的时候查询量太大, 因为写大了代码很多, 一个一个看就是浪费时间了, 用不到的写的时候就private一下, 不写后面找bug的时候就蛋疼了。。。
还有就是封装库

『陆』 php私有函数如何调用

要先搞清楚类和对象的关系
将一个类实例化后就变成对象,私有函数只能在类内部使用,不能在类外,也就是对象上使用,也不能在子类中使用,如定义一个parent类
class parent{
private function _justForMyself(){
echo "这是私有函数,只能在类内部使用哦";
}
public function forAll(){
echo "这是公共函数,在类外和子类都可以使用";
echo "因为我在类内,可以调用私有函数";
$this->_justForMyself();
}
}
现在我们实例化这个类,让他变成一个对象
$obj = new parent();//实例化parent类,让他变成一个对象并赋值给$obj
$obj->forAll();//forAll是公共函数,因此这里可以执行看到输出
$obj->_justForMyself();//_justForMyself是私有函数,类外不可使用,因此执行到这里会报错

『柒』 PHP中private和public还有protected的区别

public:声明方来法和属性可以被随意访问源。
Protected:声明的方法和属性只能被类本身和其继承子类访问。
private:只能被定义属性和方法的类访问。

private 是完全私有的,只有当前类中的成员能访问到.
protected 是受保护的,只有当前类的成员与继承该类的类才能访问.

protected的访问权介于public和private之间,实际上三者的区别就是权限问题,private和protected区别主要体现在其继承类的访问权限上,这些你可以自己编写一个程序,写个类,编译一下你就很清楚他们权限的区别了。

私有成员private member
只能被成员函数和类的友元访问
实行信息隐藏的类把其数据成员声明为private

被保护成员protected member
对派生类derived class 就像public 成员一样
对其他程序则表现得像private

『捌』 php中怎么类外访问私有方法

你问的是私有方法还是私有属性?

你说的__get __set 是访问和设置属性用的。

__call才是访问方法用的。

但这两种都需要修改原始类,既然有这个权限了,那私有方法有什么必要定义呢?

另外一种获取私有属性或调用私有方法的思路是通过反射:

//MyClass这个类中包含了一个名为myFun的私有方法
classMyClass{

private$tmp='hello';

privatefunctionmyFun()
{
echo$this->tmp.''.'world!';
}
}

//通过类名MyClass进行反射
$ref_class=newReflectionClass('MyClass');

//通过反射类进行实例化
$instance=$ref_class->newInstance();

//通过方法名myFun获取指定方法
$method=$ref_class->getMethod('myFun');

//设置可访问性
$method->setAccessible(true);

//执行方法
$method->invoke($instance);

//获取属性
$property=$ref_class->getProperty('tmp');

//打印属性
var_mp($property);

不知道你提这个单纯是个问题,还是有别的需求,可以多看看php手册学习一下。

php 访问控制

php 反射