面向对象 static abstract interface 等知识点
作用:大型公司制作大型软件
//普通成员 之前都是
//静态成员
##################################################################
静态变量
Class Ren
{
public $name;
public static $sex; 静态成员属于类 普通方法无法调用
function say()
{
echo self::sex !!静态成员调用方法 Ren::$sex;
}
static function say()
{
!!静态的方法不能直接调用普通成员
}
}
对象调动方法 Ren::$sex;
步骤
1` 修饰符 static $member;
2`调用方法:类名::$member;
3`静态变量属于类 不用new对象
#####################################################################
abstract class dongwu !!过于抽象 无法实例化
{
function say()
{
echo'正说话';
}
}
######################################################################
接口类
1`命名必须以I开头
2`方法没有具体的内容
3`子类继承使用关键字implement
4`子类必须重写所有的 接口类(父类)方法
interface ILinghun !!极度抽象的类 灵魂? 基类的基类
{
function say(); !!方法格式
}
class dog implements ILinghun
{
function say(){} !!子类必须所有重写 作用:写好接口
function sleep(){}
}
######################################################################
final class abc{} !!最高级类
#######################################################################
//__tostring
//__clone
class ts
{
public $xxx;
function __tostring()
{
return"这是Tostring方法"
}
function __clone()
{
$this->xxx=456;
}
}
$ts_ob = new ts();
$ts_ob2 = clone($ts_ob);
##################################################################
//引入文件
新建文件 Class 名与文件名要相同
新的文件
class Yinru
{
public $xxx = '666';
}
$ob=new Yinru();
引入写法
include "Yinru.php"; 最常用
include("Yinru.php");
include_once("Yinru.php"); 引入一次
require"Yinru.php";
require("Yinru.php");
作业 引入两者引入问价的区别
自动加载 当前页面
function __autoload($classname)
{
require "./lib/".$classname .".php" !! . 拼接作用
}
$ob = new Yinru();
echo $ob->xxx;