php课程 12-38 php的类的构造方法和析构方法怎么写

一、总结

一句话总结:a、__construct(参数){},__destruct(){},b、如果类中的一个方法和类名相同,则该方法为构造方法

1、$this->name和$this->$name的区别是什么?

前者是这个对象的属性,后者是这个对象的变量,所以对象调用属性的时候,属性前面不能加$

2、$user1=new Person()后面的Person为什么加圆括号,不加也是对的?

这个圆括号是类的构造方法的圆括号,用来给构造方法传值的

3、为什么类中的构造方法从类名相同方法变成了__construct?

因为这样类名改变的时候不用再去改构造方法的名字,方便

4、创建对象时时候是$user1,$user2,$user3,为什么回收(比如析构函数)的时候是$user3,然后是$user2,最后是$user1?

因为放变量的时候是把指针放到栈中,然后指向堆中的实际内存,所以栈中的存放方式是先进后出

二、php的类的构造方法和析构方法怎么写

1、相关知识

OOP是什么:
面向对象编程

软件工程的三大目标:
重用性、灵活性和扩展性

面向对象三大特性:
封装、继承和多态

面向对象参与角色:
1.类
2.对象

类与对象的关系:
对象是从类中实例化(生产)出来的!
类的组成成员:
1.属性
2.方法

类实例化对象实例:
$obj=new Person();

对象调用成员:
$obj->say();
echo $obj->name;

调用属性注意事项:
$obj->name;    #属性前不能带$

类定义注意事项:
1.文件名要与类名相同
2.类名每个单词的首字母必须大写,是最为严格的驼峰式写法
3.驼峰式:personActionGoodLike,严格的驼峰式写法:PersonActionGoodLike

构造方法:
1.__construct();
2.Person(); #如果有一个方法名字与类名相同,则该方法为构造方法

析构方法:
1.__destruct();
2.析构时变量从下往上删

 

2、代码

 <?php
// Person类定义
// 文件名要与类名相同
// 类名每个单词的首字母必须大写,是最为严格的驼峰式写法
// 驼峰式:personActionGoodLike,严格的驼峰式写法:PersonActionGoodLike class Person{ // 属性
public $name;
public $age;
public $sex; // 构造方法
function __construct($n,$a,$s){
$this->name=$n;
$this->age=$a;
$this->sex=$s;
} // 方法
function say(){
$n="name";
echo "hello world,my name is {$this->$n},my age is {$this->age},my sex is {$this->sex}!<br>";
} //析构方法
function __destruct() {
echo "我是{$this->name},我还会回来的!<br>";
}
} //类实例化
$user1=new Person('user1',20,'nv'); //类调用成员方法
$user1->say();
?>
 

php课程 12-38 php的类的构造方法和析构方法怎么写的更多相关文章

  1. PHP类(二)-类的构造方法和析构方法

    构造方法 构造方法是对象创建完成后第一个被对象自动调用的方法,用来完成对象的初始化 在每个类中都会有一个构造方法,如果没有声明的话,类中会存在一个没有参数列表并且内容为空的构造方法.如果声明的话,默认 ...

  2. Java :BufferedWriter类和BufferedReader类的构造方法、主要方法

    BufferedWriter 和 BufferedReader 为带有默认缓冲的字符输出输入流,因为有缓冲区所以效率比没有缓冲区的高. 一.BufferedWriter 类 构造方法:buffered ...

  3. 3.JAVA-方法重载,类的封装,构造/析构方法

    1.方法重载 和C++的函数重载一样,主要是实现多个相同的函数名,但是参数表不同. 参数表不同主要有以下几种 1) 参数个数不同 2) 参数类型不同 3) 参数顺序不同 2.类和对象 类class 用 ...

  4. 第8.18节 Python类中内置析构方法__del__

    一. 引言 基本上所有支持OOP设计的语言都支持析构方法(也称析构函数),析构方法都是在对象生命周期结束时调用,一般用来实施实例相关生命周期内访问数据的扫尾工作,包括关闭文件.释放内存.输出日志.清理 ...

  5. 11.JAVA-Object类之finalize(),clone(),toString()等方法覆写

    1.Object介绍 Object类是一个特殊的类,是所有类(包括数组,接口 )的父类,如果一个类没有用extends明确指出继承于某个类,那么它默认继承Object类,所以可以通过向上转型的方法使用 ...

  6. 妙味css3课程---1-2、css3中新增的伪类和伪元素有哪些

    妙味css3课程---1-2.css3中新增的伪类和伪元素有哪些 一.总结 一句话总结: 1.div:target{}是什么意思? 比如a标签的锚点链接到div,div:target{}就可以找到这个 ...

  7. thinkphp3.1课程 1-2 thinkphp中入口文件的实质是什么

    thinkphp3.1课程 1-2 thinkphp中入口文件的实质是什么 一.总结 一句话总结:在thinkphp中,我们访问的始终是入口文件,并没有主动去访问任何一个其他文件,只不过在入口文件体内 ...

  8. 尚学python课程---12、python语言介绍

    尚学python课程---12.python语言介绍 一.总结 一句话总结: 1.操作简单:简便计算:允许通过单个“import”语句后跟一个函数调用来完成复杂的计算.虽慢 2.库丰富:比如人工智能和 ...

  9. 开涛spring3(12.4) - 零配置 之 12.4 基于Java类定义Bean配置元数据

    12.4  基于Java类定义Bean配置元数据 12.4.1  概述 基于Java类定义Bean配置元数据,其实就是通过Java类定义Spring配置元数据,且直接消除XML配置文件. 基于Java ...

随机推荐

  1. 【Henu ACM Round#20 F】 Arthur and Brackets

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 所给的li,ri是左括号从左到右的顺序给的. (且注意长度是2*n 现在我们先把第一个左括号放在第1个位置. 然后考虑第二个位置. ...

  2. Android输入法扩展之远程输入法

    近年来,互联网电视開始火热,乐视TV,小米TV,近期爱奇艺也在大肆的招人做爱奇艺电视.当然还有更被关注的苹果电视.事实上,这个趋势非常正常,也非常合理,传统单纯的接收电视节目的电视已经太传统了.是该被 ...

  3. 用Struts2搭建一个登录例子【本人亲测好用】

    今天尝试struts2的搭建,遇到不少的问题,终于一一解决,逛了很多地方,最终完成搭建 1.首先要下载struts2的一些组件,我下载的是版本2.3.4.1,Eclipse是4.6版本的.由于版本的不 ...

  4. Android 数据库框架总结,总有一个适合你!

    一:OrmLite 简述: 优点: 1.轻量级:2.使用简单,易上手:3.封装完善:4.文档全面.缺点:1.基于反射,效率较低(本人还没有觉得效率低):2.缺少中文翻译文档 jar包 地址:http: ...

  5. scrollWidth到底是什么???

    贴上MDN对scrollwidth的定义: The Element.scrollWidth read-only property is a measurement of the width of an ...

  6. 【Django】安装及配置

    目录 MVC框架与MTV框架 Django的MTV模式 Django框架图示 安装及配置 创建一个Django项目 目录介绍 运行Django项目 启动Django报错 模版文件配置 静态文件配置 A ...

  7. oracle基础入门(二)

    一:Oracle和plsql都安装成功 我们现在要链接自己本机Oracle 或者 远程服务器的Oracle 所有我们要找到tnsnames.ora 找到PLsql的 db_1我的地址F:oracle\ ...

  8. 【Henu ACM Round#14 A】Vitaly and Night

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 连续两个如果不全是0就递增cnt [代码] #include <bits/stdc++.h> using namespa ...

  9. qt获取磁盘序列号

    #include "windows.h" QString lpRootPathName = "c:\\"; LPTSTR lpVolumeNameBuffer= ...

  10. win7安装python开发环境,执行python

    在win7上安装python的开发环境是很easy的事情 Step1:下载python安装文件 url:https://www.python.org/download 去这里找到你想要下载的文件 St ...