时间:2016-02-24 18:57 来源: 我爱IT技术网 作者:佚名
欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【PHP中实现面向对象编程】,下面是详细的分享!
PHP中实现面向对象编程
面向对象编程的概念对每一个作者来说都有不同的看法,我提醒一下一个面向对象语言应有的东西:
-数据抽象和信息隐藏
-继承
-多态性
在PHP中使用类进行封装的办法:
//InOOPclassesareusuallynamedstartingwithacapletter.
var$x;
functionsetX($v){
//Methodsstartinlowercasethenuselowercasetoseprate
//wordsinthemethodnameexamplegetValueOfArea()
$this->x=$v;
}
functiongetX(){
return$this->x;
}
}
?>
当然你可以用你自己的办法,但有一个标准总是好的。
PHP中类的数据成员使用"var"定义,数据成员是没有类型直到被赋值。一个数据成员可能是一个integer、数组、联合数组(associativearray)或甚至对象(object).方法在类里定义成函数,在方法里存取数据成员,你必须使用$this->name这样的办法,否则对方法来说是一个函数的局部变量。
使用new来创建一个对象
然后使用成员函数
$see=$obj->getX();
setX成员函数将5赋给对象(而不是类)obj中成员变量,然后getX返回值5.
你也可以用对象引用来存取成员变量,例如:$obj->x=6;然而,这不一种好的面向对象编程的方法。我坚持你应使用成员函数来设置成员变量的值和通过成员函数来读取成员变量。如果你认为成员变量是不可存取的除了使用成员函数的办法,你将成为一个好的面向对象程序员。但不幸的是PHP本身没有办法声明一个变量是私有的,所以允许糟糕的代码存在。
在PHP中继承使用extend来声明。
var$y;
functionsetY($v){
//Methodsstartinlowercasethenuselowercasetoseperate
//wordsinthemethodnameexamplegetValueOfArea()
$this->y=$v;
}
functiongetY(){
return$this->y;
}
}
?>
这样类"Another"的对象拥有父类的所用成员变量及方法函数,再加上自己的成员变量及成员函数。如:
$obj2->setX(6);
$obj2->setY(7);
多重继承不被支持,所以你不能让一个类继承多个类。
在继承类中你可以重新定义来重定义方法,如果我们在"Another"重新定义getX,那么我们不再能存取"Something"中的成员函数getX.同样,如果我们在继承类中声明一个和父类同名的成员变量,那么继承类的变量将隐藏父类的同名变量。
你可以定义一个类的构造函数,构造函数是和类同名的成员函数,在你创建类的对象时被调用。
var$x;
functionSomething($y){
$this->x=$y;
}
functionsetX($v){
$this->x=$v;
}
functiongetX(){
return$this->x;
}
}
?>
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
