PHP 5.3.0

最近看了 O’REILLY 的 Modern PHP,作者是 Josh Lockhart,有興趣的人可以去買一本來看看,受益良多。
同時也是 PHP: The Right Way 的作者,
因為現在網路上過時資訊太多,提供了良好的 PHP 習慣和方法。

Namespace 名稱空間

為了避免有相同的類別、介面、函式、常數名稱,名稱重複而導致執行失敗。

  • 開頭被宣告,緊接著 <?php 之後的下一行

  • 子名稱空間用 \ 字元做間隔

  • 主名稱空間(最上層的名稱空間)必須在全域空間保持唯一

  • 一個檔案一個 namespace ,讓程式碼簡單容易除錯

<?php
namespace Clouding\Blog;

class Sample
{
// do something
}

Use 匯入, Alias 別名

  • 透過 use 可以不用每次都把完整名稱空間打出來

  • as 自訂名稱空間別名

  • 多重匯入每一行都用 use 方便人理解和除錯

  • 程式碼如果沒有名稱空間,會存在於全域名稱空間,要使用要在類別前方開頭加上 \

PHP 5.3.0

不使用匯入 use

<?php
require __DIR__ . '/Sample.php';

$demo = new \Clouding\Blog\Sample();

使用匯入 use

<?php
require __DIR__ . '/Sample.php';
use Clouding\Blog\Sample;

$demo = new Sample();

使用別名 as

<?php
require __DIR__ . '/Sample.php';
use Clouding\Blog\Sample as s;

$demo = new s();

其他名稱空間中使用正確的類別名稱,類別名稱前加\

<?php
namespace Clouding\Blog;

class Sample
{
public function doSomething()
{
throw new \Exception();
}
}

PHP 5.6.0

匯入函式 use function

<?php
require __DIR__ . '/function.php';
use function Clouding\Blog\functionName;

functionName();

匯入常數 use const

<?php
require __DIR__ . '/constant.php';
use const Clouding\Blog\CONST_NAME;

echo CONST_NAME;