php私有
『壹』 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 反射