一:定义类   二:实例化对象

 //定义类
class Ren
{
var $name;
var $sex;
var $age; function Say()
{
echo "{$this->name}在说话";
}
}
//实例化对象
$Ren = new Ren();
//调用对象的成员:
$Ren->name = "张三";
$Ren->Say();

显示结果:

三:$this关键字

$this->name;  this代表该对象,如果要在成员方法中调用成员变量,一定要使用$this找出该成员变量

四:构造函数:

①html5以前,构造函数名必须与类型相同

②执行时间特殊,最早执行,作用成员变量初始化

无参:

 function __construct()
{
echo "空参构造函数";
}

有参:

 function __construct($n,$s,$a)
{
$this->name = $n;
$this->sex = $s;
$this->age = $a;
}

五:析构函数:

 function __destruct()
{
echo "析构函数作用断开连接销毁释放空间";
}

六:封装:private   set  get

成员变量 定义访问修饰符 直接把var去掉  换public private protect

将类里面的成员变量加一个private修饰符变成私有的,目的是为了保护类里面的成员不被外界随意访问,从而确保类的安全性。将变量设置为私有,如何去访问:

①自己写函数get函数set函数,然后来对变量赋值和取值
②用系统自带的__get()函数和__set()函数来实现类里面的变量赋值取值

 function __set($name,$value)
{
$this->$name = $value;
}
function __get($name)
{
return $this->$name;
}

七:继承

继承一般是单继承:一个儿子只能有一个父亲

①子类可以继承父类的所有成员
②子类可以对父类的成员方法进行重写:(函数名一样)

要在子类方法中调用父类的方法,用parent::Say();

 function Say()
{
parent::Say(); echo "hello";
}

final关键字可以定义类为最终类,不可被继承。

静态:关键字:static

如果成员声明了为静态的,那么该成员是属于该类的,不是属于对象的

 //如何调用静态的成员:
AA::$height = 10; //用类名加双冒号调用类的静态成员
AA::Hao();
 //面向对象
class Ren
{ private $sex;
private $name;
//方法 访问成员变量的方法
private $age;//封装用private
//封装:访问成员变量的方法
public function SetAge($age)
{
if($age>18 && $age<80)
{
$this->age=$age;
}
}
//成员变量 定义访问修饰符 直接把var去掉 换public
//封装:简便方法赋值
public function __set($name,$value)
{ if ($name=="age")
{
if ($value>18 && $value<80)
{
$this->$name=$value;
}
}
else{
$this->$name=$value;
}
}
//封装:简便方法获取值
public function __get($name)
{
return $this->$name;
} public function Say() //成员方法
{
echo $this->name."这个人在讲话";
} //1,构造函数,写法特殊,必须与类名相同 2,执行时间特殊 最早执行 作用成员变量初始化
function __construct($name,$sex)
{
$this->name=$name;
$this->sex=$sex;
}
//2,析构函数:对象销毁时自动用 用来释放内存,关闭连接等
function __destruct()
{
echo "该对象马上销毁";
}
}
//继承
class Student extends Ren
{
public $class;
//父类方法的扩展和重写
function Say()
{ parent::Say();//调用父类中的方法
echo "子类方法";
}
}

最新文章

  1. no module named flask.ext.login
  2. iOS-----About Asset Catalog
  3. codeforces 356 C. Compartments 构造 贪心
  4. __future__
  5. Ubuntu 安装 ImageMagic(6.9.1-6)及 PHP 的 imagick (3.0.1)扩展
  6. js实现通用的微信分享组件示例
  7. 学习练习 java 验证码练习
  8. CSS浮动属性Float到底什么怎么回事,下面详细解释一下
  9. Win7构造wifi热点【Written By KillerLegend】
  10. UVa 116 (多段图的最短路) Unidirectional TSP
  11. Kafka 0.8: 多日志文件夹机制
  12. CodeFile与CodeBehind的区别
  13. oracle 定义数据完整性
  14. Object-c学习之路三(@class与#import的区别)
  15. Weka开发[4]-特征选择
  16. The type java.util.Map$Entry cannot be resolved. It is indirectly referenced from required .class files
  17. 比特币区块结构Merkle树及简单支付验证分析
  18. android中的五大布局(控件的容器,可以放button等控件)
  19. IT连创业系列:新的一年,先淫文一篇!
  20. 页面中引入mui 地址选择,点击页面中其他input时页面回到顶部

热门文章

  1. js事件 (包含call()方法使用特点)
  2. python013 Python3 条件控制
  3. 【ITOO 5】启用MSDTC后的各种问题,以及解决方案
  4. react.js 父子组件数据绑定实时通讯
  5. spring mvc dispatcherServlet
  6. msp430入门编程50
  7. poj2773求第K个与m互质的数
  8. D. Little Artem and Dance---cf669D
  9. Maven新建webapp项目报错Could not resolve artifact org.apache.maven.archetypes:maven-archetype-webapp:pom:RELEASE
  10. 打开input输入的时候,css中position:absolute/fixed定位的时候,定位元素上移问题解决