Ⅰ php扩展 怎么访问常量属性
工具:
netbeans
步骤:
1、定义一个类,类中用const定义一个常量。
Ⅱ php 如何在父类访问子类的属性
可以
用$this就可以了。
静态的属性直接用类名访问
Ⅲ php对象访问不存在的类属性
使用get()和set()而不使用public的成员变量,是因为我们设计类的时候要遵循这样的原则:
提供类的人要尽量将类中有什么隐藏起来,只告诉使用者你能做什么
使用类的人不关心你的类中有什么,只关心类提供了什么功能
所以设计类的时候要尽量不提供public的成员变量,最好一个都没有,只提供接口
这条原则其实不仅是代码规范的问题,放到工作中,这就是多项目组或多部门之间合作的准则
这条原则也绝对不是某个独自编码的程序狼一拍脑袋就想出来,这是经历过有组织开发过工作的程序猿才能设计出来的。
————————————————————————————————————————————————————————————
这个问题其实很简单,比如
setAge(int age){
if(age<1||age>120)
throw new Exception(" 你输入的年龄不合法");
}else{
this.age=age;
}
这个是public变量做不到的,安全是其中一个原因,另外楼主你要是学过Hiberante和Spring的话,就会知道
一些类的变量,即使是public的,也必须写上set方法,否则就出错,框架设计的时候就这么要求的
所以别人都这么做的时候,你这么做只会有好处而不会有坏处,这就是标准
Ⅳ PHP中类的属性在类中调用只必须使用$this吗
在 sd()里使用变量a只能用$this->a吗?
是的
类中的echo $b;为什么会报错呢?
类中只能有成员变量和成员函数, 这不是变量也不是函数,这是一个执行语句,所以当然会报错。
Ⅳ PHP在类外如何调用类里的成员属性
在类加载的时候就会分配内存,可以通过类名直接去访问;非静态成员(变量和方法)属于类的对象,所以只有在类的对象产生(创建类的实例)时才会分配内存,然后通过类的对象(实例)去访问。
在一个类的静态成员中去访问其非静态成员之所以会出错是因为在类的非静态成员不存在的时候类的静态成员就已经存在了,访问一个内存中不存在的东西当然会出错:class CA{private:int a; //非静态成员,创建类的实例时分配内存,类的不同实例对应不同的内存区域
Ⅵ php如何通过子类继承父类共有方法访问父类私有属性
在父类中加个public方法,
如private
$aaa
=
'test';
public
function
getAAA(){
return
$this->aaa;
}
在子类中调用parent::getAAA();就可以获得父类私有属性
当然如果你想获取多个,可以改成动态变量名,
getAAA($v){
return
$this->{$v};
}
Ⅶ php子类可以继承和访问父类的私有属性和方法吗
你这样理解也可以,当父类有私有的方法和属性,子类是继承不到的,所以子类不能访问父类的私有方法和属性。java
特性,private:类中只要限定为private的成员,只能被这个类本身访问
Ⅷ php你如何访问和设置一个类的属性
class Demo
{
private $_var1 = 0;
public function getVar1()
{
return $this->_var1;
}
public function setVar1($value)
{
$this->_var1 = $value;
}
}
$demo = new Demo();
$demo->setVar1(10);
echo $demo->getVar1();
Ⅸ 关于 php 类成员属性声明和访问的问题
你总共提了三个问题,三个问题都是关于访问权限控制的,建议你将面向对象的访问权限控制的那部分给学习一下。
(1)类里的变量是否一定要声明为成员属性,
答:不一定,在一个类中,有构造函数、属性、方法;未在方法和构造函数中声明的变量为属性,属性是体现这一个类(对象)的特性的描述,他是这个类的特性的描述,这个类的状态的改变将会随着这些属性值的改变而改变。如果某一变量不属于这个类的属性,当然可以声明在别的地方,只要在访问权限内,当然也可以访问,就像foreach($this->post as $key=>$value),$key与$value都不是类的属性,当然不用声明在类的属性部分了,这里的$key与$value便成了这个方法的局部变量。
(2)非类的属性,绝对不能用$this->来访问,$this指的是当前对象,$this->所指向的是当前对象的属性或许方法,既然不是类的属性,当然不能用$this->来访问了,
Ⅹ 关于PHP继承的问题,父类方法访问子类属性
把class b 中的private改成protected 或者public就不出错了
private 不允许继承类成员调用
protected 所有继承类成员都能用
public 所有成员都能调用