一、php构造函数
<?php
class Person{
public $name;
public __construct(){
echo "构造方法";
}
//如果没有 构造函数 系统会为类分配一个默认的构造方法 构造方法的修饰符必须是public
$p = new Person(); //会默认执行__construct();函数
?>
二、php析构函数
析构函数 自动释放资源,析构函数执行的顺序,最先new的对象 最后被释放,先进后出的原理
当对象不被使用,会自动调用析构函数进行销毁资源。
<?php
class Person{
public $name;
public $age;
//构造函数
public function __construct($name,$age){
$this->name = $name;
$this->age = $age;
}
//析构函数
function __destruct(){
echo "销毁";
}
//输出字符串
public function print_Str(){
echo "名字:".$this->name."年龄:".$this->age;
echo "<hr/>";
}
}
$yy = new Person("yyy",16);
$yy->print_Str();
$xx = new Person("xxx",17);
$xx->print_Str();
?>
注: 析构函数一个类只能有一个,没有参数,没有返回值,是人为的,系统不会自动构建析构函数
三、静态变量(类变量)和静态方法(类方法)
访问静态变量的方法:(1)在类外部: className::staticName (2)在类内部self::staticName or className::staticName
<?php
/*
* use static variable and static method
*
*/
// global $global_num; //全局变量定义后赋值 否则会报错
// $global_num = 0;
class Visite{
public $name;
public static $nums =0; //定义静态变量
//构造函数
public function __construct($name){
$this->name=$name;
//echo "构造函数";
}
//析构函数 释放资源
public function __destruct(){
//echo "释放资源";
}
public function countVisite(){
/* $num = $num+1;
echo $num; */
}
public function join_gname(){
Visite::$nums +=1;
echo $this->name."加入游戏";
}
}
$v1 = new Visite("1");
$v1->join_gname();
$v2 = new Visite("2");
$v2->join_gname();
$v3 = new Visite("3");
$v3->join_gname();
$v4 = new Visite("4");
$v4->join_gname();
echo "<hr/>";
echo Visite::$nums;
?>
四、全局变量
<?php
/*
* use static variable and static method
*
*/
global $global_num; //全局变量定义后赋值 否则会报错
$global_num = 0;
class Visite{
public $name;
//构造函数
public function __construct($name){
$this->name=$name;
//echo "构造函数";
}
//析构函数 释放资源
public function __destruct(){
//echo "释放资源";
}
public function countVisite(){
$num = $num+1;
echo $num;
}
public function join_gname(){
global $global_num;
$global_num+=1;
echo $this->name."加入游戏";
}
}
$v1 = new Visite("1");
$v1->join_gname();
$v2 = new Visite("2");
$v2->join_gname();
$v3 = new Visite("3");
$v3->join_gname();
$v4 = new Visite("4");
$v4->join_gname();
echo "<hr/>";
echo $global_num;
?>