
批改狀態(tài):合格
老師批語:希望堅持下去, 作業(yè)完成的很出色
(1)關(guān)鍵字:
-namespace:命名空間(必須寫在腳本的第一行)
-__NAMESPACE__
:魔術(shù)常量,返回當(dāng)前空間名稱
-__CLASS__
:返回一個“完全限定名稱”的類名稱
-__FUNCTION__
:返回一個“完全限定名稱”的函數(shù)名
-__METHOD__
:返回一個“完全限定名稱”的類中方法名
-::CLASS
:返回具有完全限定的類名
(2)導(dǎo)入和別名:
a、導(dǎo)入關(guān)鍵字:use \完全限定名稱的全局成員(默認(rèn)從全局開始,可以省略\)
b、常見的加載函數(shù):include|require 導(dǎo)入不同于加載
c、別名:use \demo as de;(如果導(dǎo)入的成員名字和別名名字一直,可以省略as,直接使用),別名用具解決導(dǎo)入后的命名沖突。
一、
1.完全限定名稱:從全局空間開始查找、類似絕對路徑 例如:use \part1\Demo\function
2.限定名稱:從當(dāng)前空間開始查找,類似相對路徑 例如:use namespace\Demo\function
3.非限定名稱:僅在當(dāng)前空間進行查找,類似當(dāng)前路徑 例如: use Demo\Class
二、
1、非限定名稱和限定名稱可以直接轉(zhuǎn)化成完全限定名稱,
2、非限定名稱主要使用在同命名空間下,不同腳本之間成員訪問。
3、限定名稱主要使用在,在同命名空間下,不同子命名空間中成元的訪問,(至少有一個‘\’,不能在開頭)
4、完全限定名稱,主要使用在不同命名空間之間稱員的訪問,從根空間開始查找必須有‘\’開頭
三、
1、導(dǎo)入關(guān)鍵字:use (加載:include|require)
在腳本中加載外部腳本后,為了簡化成員的調(diào)用和使用,可以用use關(guān)鍵字直接導(dǎo)入成員,然后就可以直接使用(不需要在寫冗長的完全限制名稱了.
別名關(guān)鍵字:as 解決導(dǎo)入簡化完全限定名稱造成命名沖突 例如:use \part1\Demo as Demo;
四、
1、::class
:直接返回的完全限定的類名,而__NAMESPACE__
:直接返回的當(dāng)前空間名稱
2、在php代碼中,一般都是直接調(diào)用的類,很少單獨調(diào)用空間的,所以一般都時直接使用::class
,但有些時候考慮到命名空間名稱修改,可以使用:__NAMESPACE__.\Demo\function;
php文件1:demo0.php
<?php
namespace part1\con;
//常量
const SITE='中文網(wǎng)';
//在php7+允許define創(chuàng)建數(shù)組常量,但不支持命名空間
define('CITY',['name'=>'中國','time'=>'2020']);
namespace part1\func;
//函數(shù)
function sum(int $a,int $b):string {
return '$a*$b='.($a*$b);
}
namespace part1\cla;
// 類
class Demo {
public $city='鄭州';
public $age;
public function __construct($age){
$this->age=$age;
}
public function get_info(){
return '我在'.$this->city.$this->age.'年';
}
}
// $a=new Demo(5);
// $c=$a->get_info();
// echo $c;
//接口
namespace part1\api;
interface Itest {
public static function hello();
}
代碼
<?php
// 匿名類:只是用一次
namespace part1;
echo (new class ('李老師'){
public $name;
// 構(gòu)造方法
public function __construct($name)
{
$this->name = $name;
}
})->name;
echo '<br>';
// 類型約束:函數(shù)和方法參數(shù)和返回值
function sum(int $a,int $b):string {
return '$a+$b='.($a+$b);
}
$c= sum(5,10);
echo $c.'<br>';
echo __NAMESPACE__;
echo '<hr>';
// 四類全局稱員的訪問方式
echo "<h1>四類全局稱員的訪問方式</h1>";
require 'demo0.php';
$s= \part1\con\SITE;
$s1= CITY['time'];
$f= \part1\func\sum(3,5);
echo $s,$s1;
echo $f.'<br>';
use \part1\cla\Demo;
$C=new Demo(5);
echo $C->get_info();
echo '<br>';
class Test implements \part1\api\Itest
{
public static function hello(){
return __FUNCTION__;
}
}
$a=Test::hello();
echo $a;
// 導(dǎo)入四類全局成員及別名的使用
echo "<h2>導(dǎo)入四類全局成員及別名的使用</h2>";
//別名和導(dǎo)入成員名字一樣,可以省略;
use const \part1\con\SITE;
echo SITE;
use function \part1\func\sum as ride;
echo ride(3,5);
echo $s,$s1;
echo $f.'<br>';
use \part1\cla\Demo as D;
$C=new D(5);
echo $C->get_info();
echo '<br>';
use \part1\api\Itest as I;
class Test1 implements I
{
public static function hello(){
return __FUNCTION__;
}
}
$a=Test1::hello();
echo $a;
1、導(dǎo)入常量和函數(shù)時:use 要跟const和function,然后在跟完全限制名稱
2、導(dǎo)入的成員的別名和成員名一樣時,可以省略as別名,直接使用;
3、全局成員有:類、接口、函數(shù)、常量
4、class_implements();
:查詢接口
6、self::class
:返回當(dāng)前類的完全限定名稱;
7、define()可以設(shè)置數(shù)組常量,默認(rèn)在全局空間(php7+);
微信掃碼
關(guān)注PHP中文網(wǎng)服務(wù)號
QQ掃碼
加入技術(shù)交流群
Copyright 2014-2025 http://ipnx.cn/ All Rights Reserved | php.cn | 湘ICP備2023035733號