-
interface Ia
interface Ib
interface AB extends Ia, Ib - 继承
class Test implements AB - 实现
查看全部 -
查看全部
-
查看全部
-
2-3 命名空间
常量定义 - const 和 define 的区别
define 定义的常量是全局的,不受命名空间影响; 如果要定义受命名空间影响的常量,就要使用 const 。
以下类型会受到命名空间的影响:
类(包括抽象类、traits)、接口、函数和常量
use 关键词 - 导入
use ... as ... 关键词 - 导入 & 使用别名
use - 导入类
use function ... - 导入函数
use const ... 导入常量
namespace index;
include '3.php';
var_dump(new \Test1());
备注: \ 反斜杠表示全局空间
查看全部 -
this是对象,parent和self是类,self是自身这个类,parent是父类,static是上下文中的当前类,不知道这样理解对不对。
查看全部 -
<?php
class test1{
public static function __callStatic($model,$arga)
{
echo $model."<br />";
print_r($arga);
}
}
test1::go(1,'ok');
echo "<hr />";
class A{
public function go()
{
echo 'gogogogog....';
}
}
function test(A $a)
{
$a->go();
}
test(new A());
echo "<hr /> 单例模式:";
class Test{
private static $_instance = null;
private function __construct()
{
}
private function __clone()
{
}
public static function getInstance()
{
if(!(self::$_instance instanceof self)){
self::$_instance = new self();
}
return self::$_instance;
}
}
$test1 = Test::getInstance();
$test2 = Test::getInstance();
$test3 = Test::getInstance();
var_dump($test1);
var_dump($test2);
var_dump($test3);
echo "<hr /> 工厂模式:便于底层类的批量修改";
class Redis
{
public function set(){}
public function get(){}
}
class Cache
{
public static function factory()
{
return new Redis();
}
}
$Cache = Cache::factory();
var_dump($Cache->set());
echo "<hr />";
?>
final 不被继承的,可以放到类或者方法的前面。
全局空间的类,前面加上"\"。(use \Test1;)
__autoload 当未找到引入的类,则会自动实现实例化类名的路由。
spl_autoload_register(function($className){
require str_replace("\\","/",$className . '.php');
});
替代__autoload自动加载类的方法。
当为类里面的属性加上“static”关键字后,可以直接通过类名调用。
类的后期静态绑定:子类中有父类的同名函数,继承之后,若想调用子类的同名函数,则父类的方法加“static::who()”。
魔术方法:
__set();__get();
__isset();判断私有属性(private)是否存在。
__unset();删除私有属性。
__call();调用的方法不存在时,自动调用此方法。
__callStatic();当发现调用的静态方法不存在时,则自动调用此方法。
__invoke();将对象以函数方式调用。test('go...');
__toString();直接打印对象函数。echo(test);
__clone();将浅拷贝,变成深拷贝。
PHP中对象的赋值是浅拷贝。深拷贝用clone。
trait类,可以用use方法调用。
interface接口类,不实现方法。
abstract抽象类,既可以定义接口,又可以实现方法。
单例模式和工厂模式:
单例模式同一个类,不用被实例化多次,从而节省内存。
查看全部 -
1、类常量:const
2、调用类常量:self::
3、$this是对象
4、self是类本身
查看全部 -
常量一经定义不可更改
查看全部 -
面象对象查看全部
-
谢谢老师查看全部
-
不同类中,同名方法可以存在
查看全部 -
有两个下划线“__”表示php内置的函数
查看全部 -
当子类方法与父类同名,子类是会覆盖父类的方法。
当子类没有构造方法时,会去调用父类的构造方法,当子类有自己的构造方法,就会调用自己的构造方法。
查看全部 -
基本的类和对象讲解演示,刚好和之前看过的PHP入门篇内容相结合,更有助于理解,生动通俗,很不错的教学视频。
查看全部 -
浅拷贝: 变量之间是地址传递的。查看全部
举报