属性初始化:属性是类对于同类事务所抽离出来的共性数据,本身在类结构中没有价值,是当具体对象产生以后,属于对象本身的,因此在进行类中定义属性的时候,通常不会对属性进行初始化,除非属性本省的值也具有共性
设定好的类成员本省不会被外部使用到,那么应该使用private或者protected
设定好的类成员一定会给外部访问,使用public
构造方法
构造方法__construct(),是类结构中特有的特殊方法,改方法有系统规定好,开发人员定义的时候只需要抄一边,有了构造方法的类在实例化对象之后,对象就会自动调用
构造方法实现:在类中增加一个方法__construct()即可
<?php
//使用class关键字构造一个类
class A{
public $count;
private $num ;
public function __construct($c,$n){ //构造函数实例化结束后会自动调用
echo __CLASS__.'<br>';
//低版本初始化属性
// $this->num = 100;
// $this->count = 30;
//初始化属性高版本
$this->count = $c;
$this->num = $n;
// echo $this->num.'<br/>';
}
}
// new A; //new一个对象
//传参实例化
$a = new A(12,15); //传入参数,括号没有传参的时候加不加都可以
$a_1 =new A(100,50);
echo $a->count.'<br>';
echo $a_1->count;
// echo $a->num; //报错,因为num是一个私有属性,不能在外部调用
?>
new 类名和new类名()没有区别是因为没有构造方法,一旦构造方法有了参数,或者构造方法没有参数限定,那么new类名就不能直接使用了
范围解析操作符
访问方式:类名::常量名
<?php
//class定义类
class A{
const pi = 3.14; // //const定义常量
}
echo A::pi; //::访问类常量
?>
静态成员
使用static关键字修饰的属性和方法 ,表示该成员属于类访问,PHP静态成员有两种,静态属性和静态方法
静态属性:在类中定义自定义属性的时候使用static关键字修饰,访问的时候只能使用类+范围解析操作符+静态属性访问
<?php
class A_1{
public $money =0;
public static $count=10; //静态属性
//静态方法
public static function showCount(){
//输出静态属性
echo A_1::$count,__FUNCTION__.'<br>';
}
}
//访问类,和访问常量的方法一样都用::
echo A_1::$count.'<br>';
A_1::showCount(); //调用静态方法
//普通属性访问
// $b = new A_1;
// echo $b->money;
?>