类的声明与实例化及构造方法析构方法(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学习)的更多相关文章
- 0604-面向对象、类与对象、类、static、构造方法/析构方法
一.面向对象 1.面向过程:一个人分步骤完成某个事情 2.面向对象:某件事情拆分为多个任务,由每个对象独立完成,最后调用整合为一个完整的项目 3.三要素:继承.封装.多态. 封装:私有化属性 提供公共 ...
- 02.php面向对象——构造方法&析构方法
<?php //自己写的构造方法 class Computer{ public function Computer(){ echo '构造方法'; } } new Computer();//这样 ...
- PHP-----类与对象,成员方法,成员属性,构造方法,析构方法
php里面的类-----class XX{},通过类的定义,可以使用调用类里面的成员属性和成员方法. 对象---一个类就是一个对象,一个对象可以有多个属性,一个类可以有多个成员方法. 构造方法:一个类 ...
- php课程 12-38 php的类的构造方法和析构方法怎么写
php课程 12-38 php的类的构造方法和析构方法怎么写 一.总结 一句话总结:a.__construct(参数){},__destruct(){},b.如果类中的一个方法和类名相同,则该方法为构 ...
- PHP 构造方法 __construct()和PHP 析构方法 __destruct()
PHP 构造方法 __construct() 允许在实例化一个类之前先执行构造方法. 构造方法 构造方法是类中的一个特殊方法.当使用 new 操作符创建一个类的实例时,构造方法将会自动调用,其名称必须 ...
- Python - 面向对象编程 - __del__() 析构方法
del 语句 Python 提供了 del 语句用于删除不再使用的变量 语法 del 表达式 删除变量的栗子 var = "hello" del var print(var) # ...
- python - class内置方法 doc/module/del(析构方法)/cal 方法
__doc__ # __doc__ #摘要信息 #这个属性不会继承给子类 class Test(): """这是摘要信息""" pass x ...
- PHP类(二)-类的构造方法和析构方法
构造方法 构造方法是对象创建完成后第一个被对象自动调用的方法,用来完成对象的初始化 在每个类中都会有一个构造方法,如果没有声明的话,类中会存在一个没有参数列表并且内容为空的构造方法.如果声明的话,默认 ...
- 【07】为多态基类声明virtual析构方法
1.考虑下面的需要,需要一个工厂方法.工厂方法的规则是:在堆上分配一个子类对象,并返回父类指针.使用完毕,delete父类指针.如果父类的析构方法不是virtual,将直接调用父类的析构方法,导致局部 ...
随机推荐
- python3 堆排序
思路: 1.建立堆 2.得到堆顶元素,为最大元素 3.去掉堆顶,将堆最后一个元素放到堆顶,此时可通过一次调整重新使堆有序. 4.堆顶元素为第二大元素. 5.重复步骤3,直到堆变空. 动画 代码: de ...
- LeetCode OJ:Number of 1 Bits(比特1的位数)
Write a function that takes an unsigned integer and returns the number of ’1' bits it has (also know ...
- yii2 实现excel导出功能
官方教程地址:http://www.yiiframework.com/extension/yii2-export2excel/ 安装: Either run php composer.phar req ...
- Java基础学习-包装类
package packaging; /*包装类: 是封装了基本数据类型的类,为了提供更多复杂方法 Integer: String---int 1.intvalue() 2.parseTnt() in ...
- MoreEffectiveC++Item35(操作符)(条款5-8)
条款5 对定制的"类型转换函数"保持警惕 条款6 区别increment/decrement操作符的前值和后置形式 条款7 千万不要重载&&,||,和,操作符 条款 ...
- SQL 测验
1.SQL 指的是? 您的回答:Structured Query Language 2.哪个 SQL 语句用于从数据库中提取数据? 您的回答:SELECT 3.哪条 SQL 语句用于更新数据库中的数据 ...
- 使用ElasticSearch完成百万级数据查询附近的人功能
上一篇文章介绍了ElasticSearch使用Repository和ElasticSearchTemplate完成构建复杂查询条件,简单介绍了ElasticSearch使用地理位置的功能. 这一篇我们 ...
- 【机器学习PAI实践十】深度学习Caffe框架实现图像分类的模型训练
背景 我们在之前的文章中介绍过如何通过PAI内置的TensorFlow框架实验基于Cifar10的图像分类,文章链接:https://yq.aliyun.com/articles/72841.使用Te ...
- 如何使用fiddller跟踪windows进程发送的请求20140911
总结点:如何使用fiddller跟踪windows进程发送的请求 案例如下: 需求:运维工具提出需求,对每个插件的配置文件,同步到运维中心时先加密,然后传输到运维中心解密,存储到数据库 测试分析:这个 ...
- postfix邮件服务器搭建01-准备篇
本系列文章主要介绍linux下主流的开源邮件系统postfix的搭建过程,构建一个通过postfix虚拟用户管理的完整的邮件系统, 该系统包括以下组件: 邮件收发端postfix,dovecot, 邮 ...