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安装全攻略:APACHE
Oct 09 PHP
Search Engine Friendly的URL设计
Oct 09 PHP
下载文件的点击数回填
Oct 09 PHP
PHP生成静态页面详解
Nov 19 PHP
PHP实时显示输出
Oct 02 PHP
2014最热门的24个php类库汇总
Dec 18 PHP
php+mysql数据库查询实例
Jan 21 PHP
PHP生成指定随机字符串的简单实现方法
Apr 01 PHP
如何批量清理系统临时文件(语言:C#、 C/C++、 php 、python 、java )
Feb 01 PHP
php 读取输出其他文件的实现方法
Jul 26 PHP
Laravel+jQuery实现AJAX分页效果
Sep 14 PHP
ThinkPHP5.0 图片上传生成缩略图实例代码说明
Jun 20 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微信扫码支付 php公众号支付
2019/03/24 PHP
PHP优化之批量操作MySQL实例分析
2020/04/23 PHP
phpStorm2020 注册码
2020/09/17 PHP
Prototype最新版(1.5 rc2)使用指南(1)
2007/01/10 Javascript
JS实多级联动下拉菜单类,简单实现省市区联动菜单!
2007/05/03 Javascript
bootstrap和jQuery.Gantt的css冲突 如何解决
2016/05/29 Javascript
使用jquery给指定的table动态添加一行、删除一行
2016/10/13 Javascript
探讨跨域请求资源的几种方式(总结)
2016/12/02 Javascript
JS中事件冒泡和事件捕获介绍
2016/12/13 Javascript
Angular.js中下拉框实现渲染html的方法
2017/06/18 Javascript
Vue基于NUXT的SSR详解
2017/10/24 Javascript
react的滑动图片验证码组件的示例代码
2019/02/27 Javascript
mpvue全局引入sass文件的方法步骤
2019/03/06 Javascript
通过JavaScript下载文件到本地的方法(单文件)
2019/03/17 Javascript
Node配合WebSocket做多文件下载以及进度回传
2019/11/07 Javascript
浅谈vuex的基本用法和mapaction传值问题
2019/11/08 Javascript
Js视频播放器插件Video.js使用方法详解
2020/02/04 Javascript
基于vue hash模式微信分享#号的解决
2020/09/07 Javascript
利用Python如何生成随机密码
2016/04/20 Python
python中的随机函数random的用法示例
2018/01/27 Python
Python3中的列表生成式、生成器与迭代器实例详解
2018/06/11 Python
Python 读取某个目录下所有的文件实例
2018/06/23 Python
使用python批量读取word文档并整理关键信息到excel表格的实例
2018/11/07 Python
Python 多个图同时在不同窗口显示的实现方法
2019/07/07 Python
python 同时读取多个文件的例子
2019/07/16 Python
Python assert语句的简单使用示例
2019/07/28 Python
Django中使用Celery的方法步骤
2020/12/07 Python
国外软件测试工程师面试题
2016/12/09 面试题
司法建议书范文
2014/05/13 职场文书
营销总经理岗位职责范本
2014/09/02 职场文书
党员自我评价范文2015
2015/03/03 职场文书
《文化苦旅》读后感:阅读,让人诗意地栖居在大地上
2019/12/24 职场文书
vue引入Excel表格插件的方法
2021/04/28 Vue.js
Python如何解决secure_filename对中文不支持问题
2021/07/16 Python
python神经网络ResNet50模型
2022/05/06 Python
JavaScript架构搭建前端监控如何采集异常数据
2022/06/25 Javascript