数组换位置一.介绍 PHP(外文名:PHP: Hyperte(19)
构造方式是类中的一个特殊的方法,其作用是在实例化一个对象的同时,给该对象的属性赋值,使之一创建完成,就具有了其本身的特有数据(属性值)。
该方法名字是固定的,为:__construct();
该方法必须是普通方法(不能是静态方法)
通常该方法应该是public
通常该方法中使用$this这个关键字来对属性进行赋值
当new 类名()的时候,其实是在调用该构造方法
如果一个类中定义了构造方法,则实例化该类时就会调用该方法,且实例化时的参数需要跟构造方法的参数匹配
<?php
class C1{
function __construct($v1, $v2){
$this->v1 = $v1;
$this->v2 = $v2;
}
public $v1;
public $v2;
}
$o1 = new C1(123, 456);
var_dump($o1->v1);
var_dump($o1->v2);
析构方法是“销毁”对象的时候会自动调用
析构方法通常用于在销毁对象的时候来“清理数据”
通常,php程序结束后,所有对象都会自动销毁(其实属于php内部的垃圾回收机制)
说明:
析构方法通常不太需要去定义。
析构方法不能调用。
析构方法不能有形参。
析构方法中可以用于清理一些在php代码结束后不能清理的数据,如生成的文件。
对象销毁的几个情形:
脚本程序运行结束,自动销毁;
明确地unset()一个对象变量,则被销毁;
改变对象变量的值,被销毁;
实际上,当一个对象没有任何一个变量指向它的时候,该对象就会被自动销毁。如果整个程序结束,也会销毁。
<?php
class C1{
function __construct(){
echo ‘construct‘.PHP_EOL;
}
function __destruct(){
echo ‘destruct‘.PHP_EOL;
}
}
$o1 = new C1();//construct:$o1
$o2 = new C1();//construct:$o2
unset($o1);//construct:$o1
//construct:$o2
创建对象:
$对象名 = new 类名();//对象名就是变量名;类是应该定义过了
用可变类名创建对象
$对象名 = new self;//self指代类本身,这行代码只能在类内部方法中使用
通过对象创建对象
创建空对象,不通过类创建对象(php不能new Object()要用强制类型转换,用于返回数据)
<?php
class C1{
function f1(){
$o3 = new self;
}
}
$o1 = new C1();
$class1 = ‘C1‘;
$o2 = new $class1();
$o4 = new $o1;
// 创建空对象
$o5 = (object)null;
// 不通过类创建对象
$o6 = (object)array(‘name‘=>123,‘pwd‘=>456);
对象的传值:
默认是值传递,可以使用引用传递
值传递:将这个对象复制一个给新变量(对象的属性和方法不复制,所以这两个对象共用一套属性和方法)
引用传递:将新变量指向当前对象的空间
<?php
class C1{
public $v1 = 10;
}
$o1 = new C1();
$o2 = $o1;
$o3 = &$o1;
var_dump($o1);//class C1#1
var_dump($o2);//class C1#1
var_dump($o3);//class C1#1
$o1 = new C1();
var_dump($o1);//class C1#2
var_dump($o2);//class C1#1
var_dump($o3);//class C1#2(引用传递)
http://www.jiaoanw.com/%E6%95%99%E6%A1%88%E6%A0%BC%E5%BC%8F/article-25814-19.html
http://www.jiaoanw.com/
true
教案网
http://www.jiaoanw.com/%E6%95%99%E6%A1%88%E6%A0%BC%E5%BC%8F/article-25814-19.html
report
2026
构造方式是类中的一个特殊的方法,其作用是在实例化一个对象的同时,给该对象的属性赋值,使之一创建完成,就具有了其本身的特有数据(属性值)。
如此说来