摘要:/* * 类声明与实例化 * 类的声明:class 类名{} * 类的实例化:new 类名(); * 对象成员的访问 * 类内部:$this->name * 类外部:$o
/*
* 类声明与实例化
* 类的声明:class 类名{}
* 类的实例化:new 类名();
* 对象成员的访问
* 类内部:$this->name
* 类外部:$obj->name
* */
/*
* 类的声明:
* class 类名{}
* 类名:必须是合法标识符,只能以字母或下划线开始,后紧必须跟紧字母或下划线
* 类名:行业约定,首字母大写
* 类中成员:属性 和方法
* 属性:就是类变量,类常量
* 方法:函数来表示
* */
class Study //第一个字母大写
{
public $name = 'Rambo'; //定义属性前要加public
public $sex = '男';
public $tel = '13888888888';
//定义方法
public function school($course,$school){
$name = $this->name; //对象内访问可以用$this->
$tel = $this->tel;
return $name.'在'.$school.'学习'.$course.'<br>';
}
}
//实例化
$str = new Study();
//外部访问用变量名->对象运算符
echo '姓名:'.$str->name,'<br>','性别:',$str->sex,'<br>电话:',$str->tel,'<hr>';
echo $str->school('PHP基础','PHP中文网'),'<hr>';
/*
* 类属性与类常量
*
* 类属性:只能使用字面量或构造方法来初始化,不能使用表达式
* 类常量:
* 类常量必须要用const关键字声明
* 类常量声明时必须初始化
* 类常量推荐全部采用大写字母;
* 类常量可以被所有类实例所共享
* 类常量必须使用类名来访问:
* 类内:self/static::CONST
* 类外:类名::CONST
* */
class Stu2
{
public $name;
public $age;
public $course;
const SHENG = '湖南';
//构造方法
/*
* 1,在构造(创建)类的实例对象的时候,自动调用
* 2,在双下划线开头,这类方法有一个特殊的名称:魔术方法(时间驱动)
* 主要用于初始化类成员,或生成对象时自动完成的一些工作
* */
public function __construct($name,$course)
{
$this->name = $name;
$this->course = $course;
}
public function quyu(){
return $this->name.'的省份是:' . self::SHENG;
}
}
//实例化
$str2 = new Stu2('杨过','PHP');
echo $str2->course.'<BR>';
echo $str2->name.'<br>';
echo $str2->name,'在学习',$str2->course,'<br>';
$str2 = new Stu2('欧阳锋','java');
echo $str2->name,'在学习',$str2->course,'<br>';
//::范围解析符 作用域作用符
//echo Stu2::SHENG;
echo $str2->quyu();
echo '<hr>';
/*
* 类的自动加载
* spl_autoload_register();注册自动加载器
*repuire : 没导入成功 直接退出
* include : 没有导入成功,只给出警告,脚本仍然指向
*__DIR__ 魔术常量,绝对路径
* */
//include 'public/Car.php';
spl_autoload_register(function ($ClassName){
include __DIR__.'\public\\' . $ClassName . '.php';
});
$car = new Car('吉利','博越','150000');
echo $car->name,$car->brand,':'.$car->price,'<br>';
/*
* 类成员的访问限制
* 访问限制符 类的内部 类的继承上下文 类的外部
* public 允许 允许 允许 //公共访问限制符
* protected 允许 允许 禁止
* private 允许 禁止 禁止
* */
class Staff
{
//public 公共,类的内部、外部,以及继承中都可以访问
public $name;
//protected 受保护的,仅在类内部,以及子类中使用,外部不可以访问
protected $dept;
//private 私有的 仅在类的内部,子类以及外部不可访问
private $salary;
//构造方法
public function __construct($name,$dept,$salary)
{
$this->name =$name;
$this->dept = $dept;
$this->salary = $salary;
}
//创建一个接口,来访问外部受限的数据
public function getdept(){
if($this->dept =='财务部'){
return '无权查询';
}
return $dept = $this->dept;
}
public function getsalary(){
if($this->dept=='财务部'){
return '这个部门你不能查看';
}
return $salary = $this->salary;
}
}
//$staff = new Staff('rambo','网络部','3000');
$staff = new Staff('rambo','网络部','3000');
echo '名字:',$staff->name.'<br>';
//echo $staff->dept;
//echo $staff->salary;
echo '所属部门:'.$staff->getdept().'<br>';
echo '工资:',$staff->getsalary().'<br>';/public/Car.php
<?php
class Car
{
//定义属性
public $name;
public $brand;
public $price;
//构造方法
public function __construct($name,$brand,$price){
$this->name = $name;
$this->brand = $brand;
$this->price = $price;
}
}
//实例化
//$car = new Car('日产','楼兰',260000);
//echo $car->name;
批改老师:韦小宝批改时间:2018-12-17 16:28:40
老师总结:写的很不错!注释写的都很清楚!课后还要记得多练习哦!自动加载也是很重要的一块!