本篇文章给大家谈谈php怎么访问一个私有类,以及php公有私有对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录:
- 1、php怎么访问对象中的private
- 2、php class中public,private,protected,static
- 3、php中怎么类外访问私有方法?
- 4、php子类可以继承和访问父类的私有属性和方法吗
- 5、在php中如何设置类的属性,如何调用类的方法?
- 6、php如何通过子类继承父类共有方法访问父类私有属性
php怎么访问对象中的private
私有属性方法在对象外不能访问,在对象内可以访问,那么你可以写一个共有public的方法,在方法里对对象里的私有属性方法采取调用就可以了。所谓私有就是避免对象外的乱改,加个方法起限制
php class中public,private,protected,static
1. public:权限是最大的,可以内部调用,实例调用
2. protected: 受保护类型,用于本类和继承类调用
常用场景在权限设置
有需要用到权限的Class,只要继承Base这个Class即可用到登录验证。执行Login的时候会先运行Base里面的方法
3. private: 私有类型,只有在本类中使用。
4. static: 一般是在传值的时候使用,表示值不会被修改,默认为public,可用::访问
php中怎么类外访问私有方法?
你问的是私有方法还是私有属性?
你说的__get __set 是访问和设置属性用的。
__call才是访问方法用的。
但这两种都需要修改原始类,既然有这个权限了,那私有方法有什么必要定义呢?
另外一种获取私有属性或调用私有方法的思路是通过反射:
//MyClass这个类中包含了一个名为myFun的私有方法
class MyClass {
private $tmp = 'hello';
private function myFun()
{
echo $this-tmp . ' ' . 'world!';
}
}
//通过类名MyClass进行反射
$ref_class = new ReflectionClass('MyClass');
//通过反射类进行实例化
$instance = $ref_class-newInstance();
//通过方法名myFun获取指定方法
$method = $ref_class-getMethod('myFun');
//设置可访问性
$method-setAccessible(true);
//执行方法
$method-invoke($instance);
//获取属性
$property = $ref_class-getProperty('tmp');
//打印属性
var_dump($property);
不知道你提这个单纯是个问题,还是有别的需求,可以多看看php手册学习一下。
php 访问控制
php 反射
php子类可以继承和访问父类的私有属性和方法吗
你这样理解也可以,当父类有私有的方法和属性,子类是继承不到的,所以子类不能访问父类的私有方法和属性。java
特性,private:类中只要限定为private的成员,只能被这个类本身访问
在php中如何设置类的属性,如何调用类的方法?
PHP访问类的属性、方法使用箭头语法(-)。这里我给你一个例子供你参考:
?php
class MyClass { // 定义MyClass类
public $name; // 定义了一个公有属性
protected $_age; // 定义了一个保护属性
private $_email; // 定义了一个私有属性
public function my_method() { // 定义my_method方法
}
protected function _my_method2() { // 定义_my_method2方法
}
}
$obj = new MyClass; // 实例化
$obj-name = 'noname'; // 设置name属性
$obj-_age = 12; // 这是错误的,不能设置保护属性
$obj-address = 'King Street.' // 设置一个未声明的属性是允许的,效果和公有属性类似,但未赋值前不能使用。
$obj-my_method() // 调用公有方法
$obj-_my_method2(); // 这是错误的,不能调用保护方法
你需要理解继承、公有、保护和私有的概念。
继承:子类继承父类的公有、保护属性和方法。
公有:类的实例可以访问的属性和方法。
保护:只能在类的内部及其子类内部访问的属性和方法。
私有:只能在类的内部访问的属性和方法。
这是个很基础的问题,建议你多看书。
php如何通过子类继承父类共有方法访问父类私有属性
在父类中加个public方法,
如private
$aaa
=
'test';
public
function
getAAA(){
return
$this-aaa;
}
在子类中调用parent::getAAA();就可以获得父类私有属性
当然如果你想获取多个,可以改成动态变量名,
getAAA($v){
return
$this-{$v};
}
关于php怎么访问一个私有类和php公有私有的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。