本文目录一览:
- 1、php子类可以继承和访问父类的私有属性和方法吗
- 2、thinkphp调用私有方法
- 3、php中Get方法跟Post方法的区别
- 4、php中怎么类外访问私有方法?
- 5、php如何通过子类继承父类共有方法访问父类私有属性
- 6、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是私有函数,类外不可使用,因此执行到这里会报错