导航:首页 > 编程语言 > php私有的

php私有的

发布时间:2023-09-22 18:13:34

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 反射

② 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子类可以继承和访问父类的私有属性和方法吗

你这样理解也可以,当父类有私有的方法和属性,子类是继承不到的,所以子类不能访问父类的私有方法和属性。java
特性,private:类中只要限定为private的成员,只能被这个类本身访问

④ PHP中private和public还有protected的区别

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

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

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

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

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

阅读全文

与php私有的相关的资料

热点内容
压力大就试试解压神器 浏览:183
dedecmsphp文件修改 浏览:536
贷款解压省内都可以办理吗 浏览:469
思科服务器如何发布www任务 浏览:682
怎么在苹果里面下王者安卓版的 浏览:686
c语言改编程序没保存 浏览:437
msdos编译教程 浏览:978
怎么去文件夹后缀 浏览:445
粉笔app笔试真题在哪里 浏览:108
晋江小说阅读app怎么注册填写验证 浏览:157
安卓手机如何将手机app安装到u盘 浏览:520
指针编译在哪运行 浏览:810
dnf大枪压缩补丁 浏览:355
linux命令env 浏览:914
浙江app遥控锁哪里有 浏览:708
qq别人加密了怎样才能给他解开 浏览:253
程序员离职开店 浏览:770
excel不能对多重区域使用此命令 浏览:969
手机影像算法盘点 浏览:729
反编译为什么不能得到源代码 浏览:926