PHP如何進行命名空間_PHP命名空間有什么方法
命名空間是在php5.3以后新增的一個特性,php中的函數名、常量名、類名都不能重復定義。下面由學習啦小編為大家整理的PHP命名空間的方法,希望大家喜歡!
PHP命名空間的方法
一、定義命名空間
命名空間的定義必須是PHP文件的第一條語句。唯一允許在定義命名空間之前使用的語句是declare語句。
定義命名空間很簡單,只需要使用關鍵字namespace即可。命名空間的名字需要遵循PHP文件中其他標識符的命名規(guī)則。
下面是定義一個命名空間的示例:
代碼如下:
namespace MyNamespace{
class Test{
}
}
二、子命名空間
命名空間可以遵循一個特定的層級,就像我們電腦文件系統(tǒng)中得目錄一樣。子命名空間對于將一個項目結構化尤其特別有用。例如,你的項目需要訪問數據庫,你可能會想將所有數據庫相關的代碼(如數據庫異常處理等)放在同一個子目錄下。
為了保持靈活性,將子命名空間放在子目錄中是非常明智的做法。這會使你的代碼結構更清晰,而且會使遵循PSR-0標準的autoloaders的使用變得更容易。
PHP使用反斜線作為命名空間的分隔符,有趣的是,PHP甚至考慮過使用笑臉:)作為命名空間的分隔符。
子命名空間定義示例:
代碼如下:
namespace MyProjectDatabase
class Connection {
}
三、動態(tài)調用
PHP是一門動態(tài)語言,也可以將PHP的這種特性用來調用命名空間。這在本質上與實例化一個變量類和包含一個變量文件是相同的。在字符串中,PHP使用的命名空間分隔符()也是一個元字符,因此需要轉義。
代碼如下:
namespace OtherProject;
$project_name = 'MyProject';
$package_name = 'Database';
$class_name = 'Connection';
四、namespace關鍵字
關鍵字namespace不僅僅可以用來定義一個命名空間,它也可以用來顯示的表示當前命名空間,它此時的作用相當于類中的self關鍵字。
代碼如下:
namespace MyProject;
function run()
{
echo 'Running from a namespace!';
}
五、導入或別名
PHP中得命名空間也支持導入,導入也被成為別名。只有類、接口和命名空間可以被導入(別名)。導入是命名空間中一個非常有用和基礎的功能。它使我們可以使用外部的代碼包,而不用擔心名字的沖突。使用use關鍵字可以實現導入功能。也可以使用as關鍵字,在導入的時候指定一個別名。
代碼如下:
use [name of class, interface or namespace] as [optional_custom_alias]
一個完全限定的名字可以用一個未限定的別名來代替,這樣我們就不用在每次使用的時候都使用完全限定的名字,達到簡化代碼的目的。導入應該在命名空間的最高層或者全局空間中使用,在函數作用域內使用導入功能是非法的語法。
php字母大小轉換方法
1.將字符串轉換成小寫
strtolower(): 該函數將傳入的字符串參數所有的字符都轉換成小寫,并以小定形式放回這個字符串
2.將字符轉成大寫
strtoupper(): 該函數的作用同strtolower函數相反,是將傳入的字符參數的字符全部轉換成大寫,并以大寫的形式返回這個字符串.用法同strtolowe()一 樣.
3.將字符串首字符轉換成大寫
ucfirst(): 該函數的作用是將字符串的第一個字符改成大寫,該函數返回首字符大寫的字符串.用法同strtolowe()一樣.
4.將字符串每個單詞的首字符轉換成大寫
ucwords(): 該函數將傳入的字符串的每個單詞的首字符變成大寫.如"hello world",經過該函數處理后,將返回"Hello Word".用法同strtolowe()一樣.
php的常用運行方式
1、CGI
CGI即通用網關接口(common gatewag interface),它是一段程序,通俗的講CGI就象是一座橋,把網頁和WEB服務器中的執(zhí)行程序連接起來,它把HTML接收的指令傳遞給服務器的執(zhí) 行程序,再把服務器執(zhí)行程序的結果返還給HTML頁。CGI 的跨平臺性能極佳,幾乎可以在任何操作系統(tǒng)上實現。
CGI方式在遇到連接請求(用戶 請求)先要創(chuàng)建cgi的子進程,激活一個CGI進程,然后處理請求,處理完后結束這個子進程。這就是fork-and-execute模式。所以用cgi 方式的服務器有多少連接請求就會有多少cgi子進程,子進程反復加載是cgi性能低下的主要原因。都會當用戶請求數量非常多時,會大量擠占系統(tǒng)的資源如內 存,CPU時間等,造成效能低下。
2、FastCGI
fast-cgi 是cgi的升級版本,FastCGI像是一個常駐(long-live)型的CGI,它可以一直執(zhí)行著,只要激活后,不會每次都要花費時間去fork一 次。PHP使用PHP-FPM(FastCGI Process Manager),全稱PHP FastCGI進程管理器進行管理。
Web Server啟動時載入FastCGI進程管理器(IIS ISAPI或Apache Module)。FastCGI進程管理器自身初始化,啟動多個CGI解釋器進程(可見多個php-cgi)并等待來自Web Server的連接。
當客戶端請求到達Web Server時,FastCGI進程管理器選擇并連接到一個CGI解釋器。Web server將CGI環(huán)境變量和標準輸入發(fā)送到FastCGI子進程php-cgi。
FastCGI子進程完成處理后將標準輸出和錯誤信息從同一連接返回Web Server。當FastCGI子進程關閉連接時,請求便告處理完成。FastCGI子進程接著等待并處理來自FastCGI進程管理器(運行在Web Server中)的下一個連接。 在CGI模式中,php-cgi在此便退出了。
在上述情況中,你可以想象CGI通常有多慢。每一個Web 請求PHP都必須重新解析php.ini、重新載入全部擴展并重初始化全部數據結構。使用FastCGI,所有這些都只在進程啟動時發(fā)生一次。一個額外的 好處是,持續(xù)數據庫連接(Persistent database connection)可以工作。
3、APACHE2HANDLER
PHP作為Apache模塊,Apache服務器在系統(tǒng)啟動后,預先生成多個進程副本駐留在內存中,一旦有請求出 現,就立即使用這些空余的子進程進行處理,這樣就不存在生成子進程造成的延遲了。這些服務器副本在處理完一次HTTP請求之后并不立即退出,而是停留在計算機中等待下次請求。對于客戶瀏覽器的請求反應更快,性能較高。
4、CLI
cli是php的命令行運行模式,cli端的運行命令有時會很有用,以下總結幾個:
查看php版本信息
5eric:~ youngeric$ php -vPHP 5.5.38 (cli) (built: Oct 1 2016 23:03:00) Copyright (c) 1997-2015 The PHP GroupZend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies