-
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入門篇內容相結合,更有助于理解,生動通俗,很不錯的教學視頻。
查看全部 -
淺拷貝: 變量之間是地址傳遞的。查看全部
舉報