首页 开发编程 正文

php怎么访问一个私有类(php公有私有)

4、php子类可以继承和访问父类的私有属性和方法吗5、在php中如何设置类的属性,6、php如何通过子类继承父类共有方法访问父类私有属性php怎么访问对象中的private私有属性方法在对象外不能访问,用于本类和继承类调用常用场景在权限设置有需要用到权限的Class,访问php中怎么类外访问私有方法: //通过反射类进行实例化$ins...

本篇文章给大家谈谈php怎么访问一个私有类,以及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公有私有的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

本文转载自互联网,如有侵权,联系删除