classphp⽤变量赋值类_PHP使⽤类
1.类与对象
类是变量与作⽤于这些变量的函数的集合。对象:实际存在该类事物中每个实物的个体。$a =new User(); 实例化后的$a。创建对象的过程称为实例化。
例:computer.php
class Computer{ //创建⼀个Computer类
var $price=3000; //成员变量 定义价格变量$price为3000 属性
function getPrice(){ //成员函数 创建⼀个获取价格封装在getPrice⽅法(函数)中
echo 'price: '.$this->price; //打印价格 this是指向当前对象的指针
}
}
$mypc = new Computer(); //创建⼀个实例
$mypc->getPrice ();//调⽤getPrice⽅法获取价格
>
结果:
2.定义类
使⽤class关键字来创建⼀个类,类名的⾸字符⼀般要⼤写。
类定义结构如下:
class 类名 [extends ⽗类名]
{
成员变量列表
成员函数列表
}
⽅括号中的内容为可选内容。
例:class.php
class Super{ //创建 Super类
}
class Sub extends Super { //创建Sub类,并继承⽗类Super
var $p1 = "Hello p1!";//成员变量
function show(){ //成员函数 show⽅法
echo $this->p1; //$this当前对象
}
$print = new Sub(); //实例化
$print -> show();//调⽤show⽅法打印
>
结果:
3.创建对象与销毁对象
例:create_destroy_obj.php
class Obj{
}
$object1 = new Obj(); //创建⼀个新的对象,$object1的引⽤计数加1
$object2 = $object1; //引⽤复制,$object1的引⽤计数等于2,$object2的引⽤计数等于1
unset($object1); //销毁对象$object1,$object1的引⽤计数减1,但引⽤计数并不为0,$object1中成员变量内存空间并没有释放
unset($object2); //销毁对象$object2,$object2的引⽤计数减1,引⽤计数为0,此时⾃动释放所有内存空间
>
4.类的成员变量与成员函数
在类中定义成员变量(属性),只要在变量名前加public(公有)、private(私有)或者proteced(保护)类型关键词修饰。
在类中定义函数即成员函数(⽅法),它的定义⽅法和⼀般函数基本相同,使⽤function关键字声明,并在function关键字前加public(公有)、private(私有)或者proteced(保护)类型关键词修饰。
例:function.php
class Super{ //创建Super类
private $p1 = 'hello p1!'; //成员变量 私有 $p1 属性
public function show(){ //成员函数 show()⽅法 公有
echo $this->p1; //$this指当前对象
}
}
class Sub extends Super{//创建Sub类 并继承⽗类Super
private $p2 = 'hello p2!'; //成员变量 私有 $p2 属性
public function show(){//成员函数 show()⽅法 公有
echo $this->p2;//$this指当前对象
}
}
$s = new Sub(); //创建实例
$s->show(); //调⽤show()⽅法
结果:
5.类的访问控制
作⽤域
全局
同⼀个类
⼦类
public
private
protected
例:access.php
class Super { //创建⼀个Super类
private $p1 = "Hello p1!"; //成员变量 属性 私有 $p1
protected $p2 = "Hello p2!"; //成员变量 属性 保护 $p2
public $p3 = "Hello p3!"; //成员变量 属性 公有 $p3
function show () { //成员函数 show⽅法
echo 'super:'.$this->p1."
"; //this指当前对象 打印super:Hello p1
echo 'super:'.$this->p2."
"; //this指当前对象 打印super:Hello p2
echo 'super:'.$this->p3."
"; //this指当前对象 打印super:Hello p3
}
}
class Sub extends Super { //创建⼀个Sub ⽗类Super
private $p4 = "Hello p4!";//成员变量 属性 私有 $p4
function show() { //成员函数 show⽅法
Super::show();//调⽤⽗类 show⽅法 打印super:Hello p1 super:Hello p2 super:Hello p3
echo 'sub:'.$this->p1."
"; // $p1未定义 ⽆法调⽤⽗类Super 私有成员变量 打印 sub:
echo 'sub:'.$this->p2."
"; //打印sub:Hello p2
echo 'sub:'.$this->p3."
"; //打印sub:Hello p3
echo 'sub:'.$this->p4."
";//打印sub:Hello p4
}
}
$s1 = new Super();//实例化
$s1->show (); //调⽤show⽅法
$s2 = new Sub();//实例化
$s2->show();//调⽤show⽅法
//echo 'global:'.$s1->p1."
"; //访问失败 在类的外部,不能访问类的私有和保护类型的成员变量
//echo 'global:'.$s1->p2."
"; //访问失败
echo 'global:'.$s1->p3."
"; // 打印 global: Hello p3
echo 'global:'.$s2->p1."
static修饰的变量"; //⽆效数据 由于类Sub中没有定义变量$p1,所以输出了空值
//echo 'global:'.$s2->p2."
"; //访问失败
echo 'global:'.$s2->p3."
"; //打印 global: Hello p3
//echo 'global:'.$s2->p4."
"; //访问失败
>
结果:
6.类的构造函数
构造函数
void __construct ([ mixed $args [, $... ]] )
构造函数可以接受参数,能够在创建对象时赋值给对象属性
构造函数可以调⽤类⽅法或其他函数
构造函数可以调⽤其他类的构造函数
PHP 5 允⾏开发者在⼀个类中定义⼀个⽅法作为构造函数。具有构造函数的类会在每次创建对象时先调⽤此⽅法,所以⾮常适合在使⽤对象之前做⼀些初始化⼯作。
构造函数格式如下:
class 类名 [extends ⽗类名] {
[public/private/protected] function __construct()
{
}
}
之前已经知道类的成员变量和成员⽅法都可以被继承,类的构造函数也能被⼦类继承。
例:construct.php
class Super { //创建⼀个Super类
protected $p1; //成员变量 保护 $p1
public function __construct() //构造函数 公有 注:构造函数的关键词construct前⾯有两个下划线,如果只有⼀个下划线,将不会输出
任何结果

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。