您的位置:

php私有方法,php私有属性

本文目录一览:

php子类可以继承和访问父类的私有属性和方法吗

你这样理解也可以,当父类有私有的方法和属性,子类是继承不到的,所以子类不能访问父类的私有方法和属性。java

特性,private:类中只要限定为private的成员,只能被这个类本身访问

thinkphp调用私有方法

私有方法只能类自己调用。你可以在UserModel里定义一个共有方法,这个共有方法里面调用了他自身的私有方法getAge()。这样在UserAction在去调用这个共有方法,就间接的实现了调用这个私有方法。

PS:私有方法只能自己调用。这样做才实现了私有方法的作用,这样做是出于安全方面的考虑

php中Get方法跟Post方法的区别

php中Get方法跟Post方法的区别

php——get方法 :

这个方法用来获取私有成员属性值的,有一个参数,参数传入你要获取的成员属性的名称,返回获取的属性值,这个方法不用手工的去调用,因为也可以把这个方法做成私有的方法,是在直接获取私有属性的时候对象自动调用的。

因为私有属性已经被封装上了,是不能直接获取值的,但是如果你在类里面加上了这个方法,在使用“echo$p1-name”这样的语句直接获取值的时候就会自动调用__get($name)方法,将属性name传给参数$name,通过这个方法的内部执行,返回传入的.私有属性的值。

如果成员属性不封装成私有的,对象本身就不会去自动调用这个方法。

php——post方法 :

这个方法用于传送数据,用法与get方法类似,但有区别。

区别 :

Get方法在超链接后边紧跟要传递的参数对于用户是可见的如:%D6%A3%D6%DD%B4%F3%D1%A7fr=indexie=utf-8

而Post方法传递的参数是不可见的。

GET是从服务器上获取数据;POST是向服务器传送数据。

在客户端,GET通过URL提交数据,数据在URL中可见;POST把数据放在form的数据体内提交。

GET提交的数据最多只有1024字节;POST提交的数据量无限制。

由于使用GET时,参数会显示在地址栏上,而POST不会,所以,如果这些数据是非敏感数据,那么使用GET;如果包含敏感数据,为了安全,用POST方法。

;

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如何通过子类继承父类共有方法访问父类私有属性

在父类中加个public方法,

如private

$aaa

=

'test';

public

function

getAAA(){

return

$this-aaa;

}

在子类中调用parent::getAAA();就可以获得父类私有属性

当然如果你想获取多个,可以改成动态变量名,

getAAA($v){

return

$this-{$v};

}

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是私有函数,类外不可使用,因此执行到这里会报错