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 相关文章推荐
Zend Framework中的简单工厂模式 图文
Jul 10 PHP
php设计模式之命令模式的应用详解
May 21 PHP
php环境下利用session防止页面重复刷新的具体实现
Jan 09 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十)
Jun 24 PHP
基于GD2图形库的PHP生成图片缩略图类代码分享
Feb 08 PHP
Yii框架上传图片用法总结
Mar 28 PHP
thinkphp实现分页显示功能
Dec 03 PHP
在PHP 7下安装Swoole与Yar,Yaf的方法教程
Jun 02 PHP
PHP长网址与短网址的实现方法
Oct 13 PHP
php+Ajax处理xml与json格式数据的方法示例
Mar 04 PHP
php中isset与empty函数的困惑与用法分析
Jul 05 PHP
php菜单/评论数据递归分级算法的实现方法
Aug 01 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 CLI模式下的多进程应用分析
2013/06/03 PHP
php页面,mysql数据库转utf-8乱码,utf-8编码问题总结
2015/08/27 PHP
在浏览器窗口上添加遮罩层的方法
2012/11/12 Javascript
node.js中的querystring.stringify方法使用说明
2014/12/10 Javascript
jquery实现用户信息修改验证输入方法汇总
2015/07/18 Javascript
js精美的幻灯片画集特效代码分享
2015/08/29 Javascript
jquery实现简单的表单验证
2015/11/17 Javascript
微信小程序picker组件下拉框选择input输入框的实例
2017/09/20 Javascript
vue中mint-ui的使用方法
2018/04/04 Javascript
JS简单获取并修改input文本框内容的方法示例
2018/04/08 Javascript
Vue进度条progressbar组件功能
2018/04/17 Javascript
vue better scroll 无法滚动的解决方法
2018/06/07 Javascript
看看“疫苗查询”小程序有温度的代码
2018/07/31 Javascript
Vue使用zTree插件封装树组件操作示例
2019/04/25 Javascript
原生JS实现天气预报
2020/06/16 Javascript
[03:56]显微镜下的DOTA2第十一期——鬼畜的死亡先知播音员
2014/06/23 DOTA
跟老齐学Python之编写类之三子类
2014/10/11 Python
Python新手在作用域方面经常容易碰到的问题
2015/04/03 Python
python获取目录下所有文件的方法
2015/06/01 Python
pow在python中的含义及用法
2019/07/11 Python
HTML5 文件上传下载的实例代码
2017/07/03 HTML / CSS
Kathmandu英国网站:新西兰户外运动品牌
2017/03/27 全球购物
巴西在线鞋店:Shoestock
2017/10/28 全球购物
面向游戏玩家和书呆子的极客订阅盒:Loot Crate
2020/11/25 全球购物
个人应聘自我评价分享
2013/11/18 职场文书
工伤赔偿协议书范本
2014/04/15 职场文书
珍惜时间演讲稿
2014/05/14 职场文书
2014年党课学习心得体会
2014/07/08 职场文书
中华在我心中演讲稿
2014/09/13 职场文书
个人委托书范本
2014/09/13 职场文书
2015年全国爱眼日活动方案
2015/05/05 职场文书
欠款起诉书范文
2015/05/19 职场文书
《清澈的湖水》教学反思
2016/02/17 职场文书
phpQuery解析HTML乱码问题(补充官网未列出的乱码解决方案)
2021/04/01 PHP
Python实现灰色关联分析与结果可视化的详细代码
2022/03/25 Python
Python turtle编写简单的球类小游戏
2022/03/31 Python