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系统命令函数使用分析
Jul 05 PHP
PHP 动态生成静态HTML页面示例代码
Jan 15 PHP
php smarty模板引擎的6个小技巧
Apr 24 PHP
PHP生成指定长度随机数最简洁的方法
Jul 14 PHP
php将HTML表格每行每列转为数组实现采集表格数据的方法
Apr 03 PHP
PHP面向对象详解(三)
Dec 07 PHP
PHP对称加密函数实现数据的加密解密
Oct 27 PHP
PHP读取zip文件的方法示例
Nov 17 PHP
PHP PDOStatement::errorInfo讲解
Jan 31 PHP
PHP开发的文字水印,缩略图,图片水印实现类与用法示例
Apr 12 PHP
php使用json-schema模块实现json校验示例
Sep 28 PHP
浅谈laravel-admin的sortable和orderby使用问题
Oct 03 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
13 个JavaScript 性能提升技巧分享
2012/07/26 Javascript
JavaScript 反科里化 this [译]
2012/09/20 Javascript
基于jquery编写的横向自适应幻灯片切换特效的实例代码
2013/08/06 Javascript
jQuery.uploadify文件上传组件实例讲解
2016/09/23 Javascript
原生js实现下拉框功能(支持键盘事件)
2017/01/13 Javascript
JS实现按钮控制计时开始和停止功能
2017/07/27 Javascript
JavaScript实现各种排序的代码详解
2017/08/28 Javascript
vue.js中created方法作用
2018/03/30 Javascript
layer.confirm取消按钮绑定事件的方法
2018/08/17 Javascript
微信小程序实现简单表格
2019/02/14 Javascript
vue3.0实现点击切换验证码(组件)及校验
2020/11/18 Vue.js
vue使用exif获取图片经纬度的示例代码
2020/12/11 Vue.js
[52:08]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#2Fnatic VS OG第一局
2016/03/05 DOTA
Python3实现的腾讯微博自动发帖小工具
2013/11/11 Python
基于Python的接口测试框架实例
2016/11/04 Python
Python基于ThreadingTCPServer创建多线程代理的方法示例
2018/01/11 Python
Python实现文件信息进行合并实例代码
2018/01/17 Python
对python中执行DOS命令的3种方法总结
2018/05/12 Python
使用TensorFlow搭建一个全连接神经网络教程
2020/02/06 Python
python实现控制台输出彩色字体
2020/04/05 Python
在python中利用pycharm自定义代码块教程(三步搞定)
2020/04/15 Python
html5 拖拽上传图片实例演示
2013/04/01 HTML / CSS
手摸手教你用canvas实现给图片添加平铺水印的实现
2019/08/20 HTML / CSS
html5手机键盘弹出收起的处理
2020/01/20 HTML / CSS
Myprotein蛋白粉美国官网:欧洲畅销运动营养品牌
2016/11/15 全球购物
加拿大建筑和装修专家:Reno-Depot
2017/12/21 全球购物
英国品牌男装折扣网站:Brown Bag
2018/03/08 全球购物
后备干部考察材料
2014/02/12 职场文书
公司投资建议书
2014/05/16 职场文书
运动员口号
2014/06/09 职场文书
品质口号大全
2014/06/17 职场文书
婚庆公司计划书
2014/09/15 职场文书
团结友爱主题班会
2015/08/13 职场文书
MySql开发之自动同步表结构
2021/05/28 MySQL
vue代码分块和懒加载非必要资源文件
2022/04/11 Vue.js
Java异常体系非正常停止和分类
2022/06/14 Java/Android