PHP面向对象编程入门教程
发布:smiling 来源: PHP粉丝网 添加日期:2014-08-02 15:11:07 浏览: 评论:0
- /* 类的声明
- * 1.你要开发的是什么,确定写什么类
- * 2.类中的成员一定要属于这个类
- * [修饰类的关键字] class 类名{
- * 成员属性:
- * 成员方法:
- * }
- * 3.在类中声明成员属性时,前面必须有修饰词,当不确定使用哪个词时,使用var或public
- * 一个文件只保存一个类,文件名中包含类名,文件:类名.class.php
- * 类名的写法:
- * 变量:aaaBbbCcc
- * 函数:aaaBbbCcc
- * 常量:AAABBBCCC
- * 类名:AaaBbbCcc
- * 4.类中的成员属性,如果创建多个对象时,每个对象有不同的属性值时,不要直接给初值,在创建好对象之后再给值
- *
- *
- * 通过类来实例化对象
- * 1.使用的是new新建一个对象,加上类名,就是创建哪个类的对象
- * $对象引用=new 类名;
- * 2.只要有一个new 关键字就是创建一个对象,创建一个对象就是在内存中分配了一个空间
- *
- * 只有对象才在内存有存储空间
- *
- * 对象的作用
- *
- * 对象在内存中的分配
- *
- * 对象的使用
- * 对象中的成员必须通过对象的引用来访问
- * 对象->成员
- *
- * 对象->成员属性
- * 对象->成员方法
- *
- *
- *
- */
- -<?php
- class Something {
- // 在OOP类中,通常第一个字符为大写
- var $x;
- function setX($v) {
- // 方法开始为小写单词,然后使用大写字母来分隔单词,例如getValueOfArea()
- $this->x=$v;
- }
- function getX() {
- return $this->x;
- }
- }
- ?>-
当然你可以按自已的喜好进行定义,但最好保持一种标准,这样会更有效,数据成员在类中使用"var"声明来定义,在给数据成员赋值之前,它们是没有类型的,一个数据成员可 以是一个整数,一个数组,一个相关数组(associative array)或者是一个对象.
方法在类中被定义成函数形式,在方法中访问类成员变量时,你应该使用$this->name,否则对一个方法来说,它只能是局部变量.
使用new操作符来创建一个对象:$obj=new Something;
然后你可以使用成员函数通过:
- $obj->setX(5);
- $see=$obj->getX();
在这个例子中,setX成员函数将5赋值给对象的成员变量x(不是类的),然后getX返回它的值5.
你可以象:$obj->x=6那样通过类引用方式来存取数据成员,这不是一个很好的OOP习惯,我强烈建议通过方法来存取成员变量,如果你把成员变量看成是不可处理的,并且只通过对象句柄来使用方法,你将是一个好的OOP程序员,不幸的是,PHP不支持声明私有成员变量,所以不良代码在PHP中也是允许的.
继承在PHP中很容易实现,只要使用extend关键字,代码如下:
- <?php
- class Another extends Something {
- var $y;
- function setY($v) {
- $this->y=$v;
- }
- function getY() {
- return $this->y;
- }
- }
- ?>
- //类的声明(电话类)
- class Phone{
- //声明属性
- var $pinPai;
- var $color;
- var $batteryCapacity;
- var $screenSize;
- //成员方法
- function call(){
- }
- function message(){
- }
- function playMusic(){
- }
- function photo(){
- }
- }
- //类的实例化
- <?php
- class Something {
- var $x;
- function Something($y) {
- $this->x=$y;
- }
- function setX($v) {
- $this->x=$v;
- }
- function getX() {
- return $this->x;
- }
- }
- ?>
所以你可以创建一个对象,通过:$obj=new Something(6); 构造函数会自动地把6赋值给数据变量x,构造函数和方法都是普通的PHP函数,所以你可以使用缺省参数.
function Something($x="3",$y="5")
接着:
- $obj=new Something(); // x=3 and y=5
- $obj=new Something(8); // x=8 and y=5
- $obj=new Something(8,9); // x=8 and y=9
缺省参数使用C++的方式,所以你不能忽略Y的值,而给X一个缺省参数,参数是从左到右赋值的,如果传入的参数少于要求的参数时,其作的将使用缺省参数.
当一个派生类的对象被创建时,只有它的构造函数被调用,父类的构造函数没被调用,如果你想调用基类的构造函数,你必须要在派生类的构造函数中显示调用,可以这样做是因为在派生类中所有父类的方法都是可用的.
- <?php
- function Another() {
- $this->y=5;
- $this->Something();
- //显示调用基类构造函数
- }
- ?>
- class Person{
- var $name;
- var $age;
- var $sex;
- function say(){
- }
- function eat(){
- }
- function run(){
- }
- }
- //实例化
- $p1=new Person;
- $p2=new Person;
- $p3=new Person;
- <?php
- $obj=new Classfoo();
- $str=serialize($obj);
- //保存$str到磁盘上
- //几个月以后
- //从磁盘中装入str
- $obj2=unserialize($str)
- ?>
你恢复了成员数据,但是不包括方法,根据文档所说,这导致了只能通过类似于使用$obj2->x来存取成员变量,你没有别的方法的唯一办法,所以不要在家里试它.
- //访问对象的成员
- $p1->name="zhangsan";
- echo $p1->name;
Tags: PHP面向对象 入门教程
相关文章
- ·PHP 面向对象 继承(2013-11-14)
- ·PHP面向对象开发——封装关键字(2013-11-14)
- ·php面向对象__toString() 用法详解(2014-02-20)
- ·php面向对象__call处理错误调用技巧(2014-02-20)
- ·php面向对象中子类中重载父类详解(2014-02-20)
- ·php面向对象的封装性说明(2014-05-21)
- ·PHP5 中的常量 PHP 面向对象(2014-09-09)
- ·PHP 面向对象 final类与final方法(2014-09-09)
- ·php面向对象:观察者模式示例(2015-04-13)
- ·php面向对象之工厂模式示例(2015-04-13)
- ·PHP面向对象(OOP)编程:this的特殊用法(2015-12-12)
- ·php面试之面向对象的相关知识介绍(2019-12-16)
- ·聊聊php面向对象的编程基础(一)(2020-03-31)
- ·聊聊php面向对象的编程基础(二)(2020-03-31)
- ·php面向对象和面向过程有什么区别(2020-04-16)
- ·PHP面向对象教程之自定义类(2021-02-10)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)