PHP类的声明与实例化及构造方法与析构方法详解


Posted in PHP onJanuary 26, 2016

本文实例讲述了PHP类的声明与实例化及构造方法与析构方法。分享给大家供大家参考,具体如下:

<?php
class human{
  public static $leg=2;
  public $name = 'leo';
  public $age = '25';
  public function cry(){
  }
}
$leo = new human();
print_r($leo);
/*返回
human Object ( [name] => leo [age] => 25 )
*/
//为什么没有leg呢?
//是因为加了static,就变成了类的属性了,是属于所有
//通过这个类实例实例后的对象的
//public是权限修饰符,权限修饰符有public,protected,private
//在PHP4经常用到var,这个现在不怎么也不推荐用,就相当于public
//在PHP5中会把var解析成public
?>

有没有什么办法可以在new对象的时候,通过传参数来改变对象的属性呢?而不是千篇一律

答:可以在类中定义构造方法,即在初始化对象的时候,就会执行,并且可以接收参数

如下所示:

<?php 
class human{
  public static $leg=2;
  public $name = 'leo';
  public $age = '25';
  public function __construct($name,$age){
    $this->name=$name;
    $this->age=$age;
  }
}
$leo = new human('macro','23');
print_r($leo);
/*
返回
human Object ( [name] => macro [age] => 23 )
可以看到参数起作用了
__construct就是构造函数
*/
?>

与构造函数相对应的就是析构函数,即当对象销毁的时候执行的

如下所示:

<?php 
class human{
  public static $leg=2;
  public $name = 'leo';
  public $age = '25';
  public function __construct($name,$age){
    $this->name=$name;
    $this->age=$age;
    echo $this->name."对象生成啦<br />";
  }
  public function __destruct(){
    echo $this->name."对象销毁啦<br />";
  }
}
$leo = new human('macro','23');
$tim = new human('tim','18');
unset($leo);
echo '~~~~~~~~~~~~~~~~~~~~<br />';
/*
返回:
macro对象生成啦
tim对象生成啦
macro对象销毁啦
~~~~~~~~~~~~~~~~~~~~
tim对象销毁啦
*/
//__destruct是析构函数,即对象销毁的时候调用
//为什么$tim 没有unset 也执行了析构函数
//这是一个隐式销毁,unset是显式销毁
//当一个页面执行完成自动销毁
?>

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP4实际应用经验篇(8)
Oct 09 PHP
一个用于网络的工具函数库
Oct 09 PHP
PHP获取网卡地址的代码
Apr 09 PHP
提高define性能的php扩展hidef的安装和使用
Jun 14 PHP
PHP全概率运算函数(优化版) Webgame开发必备
Jul 04 PHP
PHP中strtotime函数使用方法详解
Nov 27 PHP
基于python发送邮件的乱码问题的解决办法
Apr 25 PHP
PHP编译安装中遇到的两个错误和解决方法
Aug 20 PHP
PHP中应该避免使用同名变量(拆分临时变量)
Apr 03 PHP
全面解读PHP的人气开发框架Laravel
Oct 15 PHP
php基于jquery的ajax技术传递json数据简单实例
Apr 15 PHP
[原创]php简单防盗链验证实现方法
Jul 09 PHP
php实现爬取和分析知乎用户数据
Jan 26 #PHP
简单谈谈php延迟静态绑定
Jan 26 #PHP
php制作的简单验证码识别代码
Jan 26 #PHP
php文档工具PHP Documentor安装与使用方法
Jan 25 #PHP
PHP代码维护,重构变困难的4种原因分析
Jan 25 #PHP
PHP+apc+ajax实现的ajax_upload上传进度条代码
Jan 25 #PHP
PHP实现的oracle分页函数实例
Jan 25 #PHP
You might like
PHP PDOStatement对象bindpram()、bindvalue()和bindcolumn之间的区别
2014/11/20 PHP
php创建图像具体步骤
2017/03/13 PHP
PHP长连接实现与使用方法详解
2018/02/11 PHP
PHP实现基于PDO扩展连接PostgreSQL对象关系数据库示例
2018/03/31 PHP
In Javascript Class, how to call the prototype method.(three method)
2007/01/09 Javascript
ext form 表单提交数据的方法小结
2008/08/08 Javascript
让FireFox支持innerText的实现代码
2009/12/01 Javascript
javascript查找字符串中出现最多的字符和次数的小例子
2013/10/29 Javascript
利用了jquery的ajax实现二级联互动菜单
2013/12/02 Javascript
jQuery实现tag便签去重效果的方法
2015/01/20 Javascript
jQuery Validate初步体验(二)
2015/12/12 Javascript
jQuery插件formValidator实现表单验证
2016/05/23 Javascript
javascript滚轮事件基础实例讲解(37)
2017/02/14 Javascript
Javascript封装id、class与元素选择器方法示例
2017/03/13 Javascript
js数组方法reduce经典用法代码分享
2018/01/07 Javascript
AngularJS实现动态切换样式的方法分析
2018/06/26 Javascript
nodejs的路径问题的解决
2018/06/30 NodeJs
uni-app实现点赞评论功能
2019/11/25 Javascript
vue项目中在可编辑div光标位置插入内容的实现代码
2020/01/07 Javascript
JS实现简易贪吃蛇游戏
2020/08/24 Javascript
[40:12]Liquid vs Chaos 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
[01:01:01]完美世界DOTA2联赛循环赛 GXR vs FTD BO2第一场 10.29
2020/10/29 DOTA
深入解析Python中的WSGI接口
2015/05/11 Python
Python中struct模块对字节流/二进制流的操作教程
2017/01/21 Python
python opencv 图像边框(填充)添加及图像混合的实现方法(末尾实现类似幻灯片渐变的效果)
2020/03/09 Python
Python之字典对象的几种创建方法
2020/09/30 Python
Pyside2中嵌入Matplotlib的绘图的实现
2021/02/22 Python
html5 canvas绘制放射性渐变色效果
2018/01/04 HTML / CSS
最畅销的视频游戏享受高达90%的折扣:CDKeys
2020/02/10 全球购物
JPA的特点
2014/10/25 面试题
新锐科技Java程序员面试题
2016/07/25 面试题
写自荐信的注意事项
2014/03/09 职场文书
计算机系本科生求职信
2014/05/31 职场文书
公务员群众路线心得体会
2014/11/03 职场文书
2014年学校工作总结
2014/11/20 职场文书
高中生综合素质评价范文
2015/08/18 职场文书