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 相关文章推荐
php为什么选mysql作为数据库? Mysql 创建用户方法
Jul 02 PHP
PHP编码规范之注释和文件结构说明
Jul 09 PHP
PHPUnit PHP测试框架安装方法
Mar 23 PHP
php的array_multisort()使用方法介绍
May 16 PHP
使用php 获取时间今天明天昨天时间戳的详解
Jun 20 PHP
php中jpgraph类库的使用介绍
Aug 08 PHP
ThinkPHP采用实现三级循环代码实例
Jul 18 PHP
php中实现获取随机数组列表的自定义函数
Apr 02 PHP
PHP中SSO Cookie登录分析和实现
Nov 06 PHP
Thinkphp框架开发移动端接口(1)
Aug 18 PHP
PHP数组操作简单案例分析
Oct 15 PHP
PHP一致性hash分布式算法封装类定义与用法示例
Aug 04 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中数据的批量导入(csv文件)
2006/10/09 PHP
PHP 危险函数全解析
2009/09/09 PHP
使用PHP接收POST数据,解析json数据
2013/06/28 PHP
thinkphp 一个页面使用2次分页的实现方法
2013/07/15 PHP
分享一个Laravel好用的Cache宏
2015/03/02 PHP
一张表搞清楚php is_null、empty、isset的区别
2015/07/07 PHP
php根据命令行参数生成配置文件详解
2019/03/15 PHP
使用Zookeeper分布式部署PHP应用程序
2019/03/15 PHP
Laravel5框架自定义错误页面配置操作示例
2019/04/17 PHP
深入理解JavaScript系列(12) 变量对象(Variable Object)
2012/01/16 Javascript
JS 毫秒转时间示例代码
2013/09/22 Javascript
javascript回车完美实现tab切换功能
2014/03/13 Javascript
javascript事件处理模型实例说明
2016/05/31 Javascript
angularjs ocLazyLoad分步加载js文件实例
2017/01/17 Javascript
Vue.js使用$.ajax和vue-resource实现OAuth的注册、登录、注销和API调用
2017/05/10 Javascript
vue.js实现用户评论、登录、注册、及修改信息功能
2020/05/30 Javascript
基于pako.js实现gzip的压缩和解压功能示例
2017/06/13 Javascript
轻松玩转BootstrapTable(后端使用SpringMVC+Hibernate)
2017/09/06 Javascript
vue-router两种模式区别及使用注意事项详解
2019/08/01 Javascript
Vue中通过Vue.extend动态创建实例的方法
2019/08/13 Javascript
浅谈vuex为什么不建议在action中修改state
2020/02/02 Javascript
js仿淘宝放大镜效果
2020/12/28 Javascript
python使用Berkeley DB数据库实例
2014/09/26 Python
Python实现的对本地host127.0.0.1主机进行扫描端口功能示例
2019/02/15 Python
Python如何在单元测试中给对象打补丁
2020/08/03 Python
修复iPhone的safari浏览器上submit按钮圆角bug
2012/12/24 HTML / CSS
CSS3中currentColor关键字的妙用
2016/02/27 HTML / CSS
HTML5 video视频字幕的使用和制作方法
2018/05/03 HTML / CSS
html5 Canvas画图教程(10)—把面拆成线条模拟出圆角矩形
2013/01/09 HTML / CSS
如何让IE9以下版本(ie6/7/8)认识html5元素
2013/04/01 HTML / CSS
机电专业大学生求职信
2013/10/04 职场文书
财产公证书样本
2014/04/04 职场文书
四风批评与自我批评范文
2014/10/14 职场文书
三好学生主要事迹材料
2015/11/03 职场文书
python3中apply函数和lambda函数的使用详解
2022/02/28 Python
Oracle数据库中通用的函数实例详解
2022/03/25 Oracle