可以的。。只是在定義類屬性的時候不可以。
萬榮網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),萬榮網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為萬榮成百上千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站建設(shè)要多少錢,請找那個售后服務(wù)好的萬榮做網(wǎng)站的公司定做!
因為在聲明屬性的時候,不能書寫表達式。
實例化好的對象屬性,是可以隨意賦值的。除非是 __set 和 __get 方法制作的“偽屬性”,在方法里加了判斷。
應(yīng)該是存到對象屬性中吧
你把
public function setDepartment($department)
{
$this-department=$department;
}
改成
public function setDepartment($department)
{
$this-department[]=$department;
}
即可
private $department;
要不要改成
private $department=array();
其實無所謂
偽靜態(tài)實現(xiàn)方式兩種:
1. web服務(wù)器上設(shè)置.html或者.htm等后綴的頁面也通過PHP來處理即可,比如Nginx或者Apache,都有這樣的配置文件,設(shè)置PHP處理的文件后綴類型,這樣前臺請求的htm文件,實際上是PHP代碼
2. 通過設(shè)置web服務(wù)器的rewrite規(guī)則來實現(xiàn),每個web服務(wù)器基本上都有這個功能,看看手冊即可實現(xiàn)
真正的靜態(tài)實現(xiàn):
通過CMS發(fā)布系統(tǒng),后臺直接生成真正的靜態(tài)頁面,比如新聞網(wǎng)站的新聞發(fā)布系統(tǒng),后臺錄入內(nèi)容后,直接生成html的靜態(tài)結(jié)果頁面給用戶來訪問,PHP有好多開源的CMS發(fā)布系統(tǒng),你可以下載了研究研究,也可以使用模板引擎smarty來生成靜態(tài)頁面。
數(shù)據(jù)類型有三種:
1.標(biāo)量數(shù)據(jù)類型
標(biāo)量數(shù)據(jù)類型包括以下幾種。
(1)boolean:布爾型
布爾變量是PHP變量中最簡單的。它保存一個True或者False值。其中True或者False是PHP的內(nèi)部關(guān)鍵字。設(shè)定一個布爾型的變量,只需將True或者False賦值給該變量
(2)string:字符串
字符串是連續(xù)的字符序列,字符串中的每個字符只占用一個字節(jié)。在PHP中,定義字符串有3種方式:
單引號方式,
雙引號方式,
Heredoc方式。
(3)integer:整數(shù)
整數(shù)數(shù)據(jù)類型只能包含整數(shù)。這些數(shù)據(jù)類型可以是正數(shù)或負數(shù)。在32位的操作系統(tǒng)中,有效的范圍是?2 147 483 648~+2 147 483 647。
(4)double:浮點數(shù)
浮點數(shù)據(jù)類型可以用來存儲數(shù)字,也可以保存小數(shù)。它提供的精度不整數(shù)大得多。在32位的操作系統(tǒng)中,有效的范圍是1.7E-308~1.7E+308。
2.復(fù)合數(shù)據(jù)類型
復(fù)合數(shù)據(jù)類型包括以下兩種。
(1)array:數(shù)組
可以是二維、三維或者多維,數(shù)組中的各元素可以是string、integer或double,也可以是array。
(2)object:對象類型
3.特殊數(shù)據(jù)類型
特殊數(shù)據(jù)類型包括以下兩種。
(1)resource:資源
資源是PHP內(nèi)的幾個函數(shù)所需要的特殊數(shù)據(jù)類型,由編程人員來分配。
(2)null:空值
空值是最簡單的數(shù)據(jù)類型。表示沒有為該變量設(shè)置任何值,另外,空值(NULL)不區(qū)分大小寫。
PHP(PHP:Hypertext Prerocessor)是一種在電腦上執(zhí)行的腳本語言,主要是用途在于處理動態(tài)網(wǎng)頁,也包含了命令行執(zhí)行接口(command line interface),或者產(chǎn)生圖形使用者接口(GUI)程序。[1]
PHP 最早由 Rasmus Lerdorf 在1995年發(fā)明,現(xiàn)在PHP實質(zhì)上的標(biāo)準(zhǔn)由PHP Group和開放源代碼社群維護。PHP 以 PHP License 作為許可協(xié)議,不過因為這個協(xié)議限制了PHP名稱的使用,所以和開放源代碼許可協(xié)議GPL不相容。[2]
PHP 目前被廣泛的應(yīng)用,特別是在服務(wù)器端的網(wǎng)頁程序開發(fā)。一般來說 PHP 大多執(zhí)行在網(wǎng)頁服務(wù)器上,透過執(zhí)行PHP程序碼來產(chǎn)生使用者瀏覽的網(wǎng)頁。PHP 幾乎可以在任何的操作系統(tǒng)上執(zhí)行,而且使用 PHP 完全是免費的。根據(jù)2007年4月的統(tǒng)計資料,PHP 已經(jīng)被安裝在超過2000萬個網(wǎng)站和100萬臺服務(wù)器上[3]。
目錄 [隱藏]
1 開發(fā)歷史
1.1 版本歷程
2 應(yīng)用
3 語法
3.1 類型
3.2 變量
3.3 面向?qū)ο?/p>
4 PHP相關(guān)資源
4.1 函數(shù)庫
4.2 源代碼編碼和加速
4.3 樣板引擎
5 未來發(fā)展
5.1 PHP 5.3
6 參考資料
7 外部鏈接
[編輯] 開發(fā)歷史
PHP 的發(fā)明人 Rasmus Lerdorf
Zend Technologies的創(chuàng)辦人之一 - Andi GutmansFile:Zeev Suraski.jpg
Zend Technologies的創(chuàng)辦人之一 - Zeev SuraskiPHP 原本的簡稱為 Personal Home Page[4],是Rasmus Lerdorf 為了要維護個人網(wǎng)頁,而用c語言開發(fā)的一些CGI工具程序集,來取代原先使用的 Perl 程序。最初這些工具程序用來顯示 Rasmus Lerdorf 的個人履歷,以及統(tǒng)計網(wǎng)頁流量[5]。他將這些程序和一些表單直譯器整合起來,稱為 PHP/FI。PHP/FI 可以和數(shù)據(jù)庫連接,產(chǎn)生簡單的動態(tài)網(wǎng)頁程序。Rasmus Lerdorf 在1995年6月8日將 PHP/FI 公開釋出,希望可以透過社群來加速程序開發(fā)與尋找錯誤[6]。這個釋出的版本命名為 PHP 2,已經(jīng)有今日 PHP 的一些雛型,像是類似 Perl 的變量命名方式、表單處理功能、以及嵌入到 HTML 中執(zhí)行的能力。程序語法上也類似 Perl,有較多的限制,不過更簡單、更有彈性。[5]
在1997年,任職于 Technion IIT 公司的兩個以色列程序設(shè)計師:Zeev Suraski 和 Andi Gutmans,重寫了 PHP 的剖析器,成為 PHP 3 的基礎(chǔ),而 PHP 也在這個時候改稱為PHP: Hypertext Preprocessor.[5]。經(jīng)過幾個月測試,開發(fā)團隊在1997年11月釋出了 PHP/FI 2,隨后就開始 PHP 3 的開放測試,最后在1998年6月正式釋出 PHP 3。Zeev Suraski 和 Andi Gutmans 在 PHP 3 釋出后開始改寫 PHP 的核心,這個在1999年釋出的剖析器稱為 Zend Engine[7],他們也在以色列的 Ramat Gan 成立了 Zend Technologies 來管理 PHP 的開發(fā)。[5]
在2000年5月22日,以Zend Engine 1.0為基礎(chǔ)的PHP 4正式釋出,2004年7月13日則釋出了PHP 5,PHP 5則使用了第二代的Zend Engine[5]。PHP包含了許多新特色,像是強化的面向?qū)ο蠊δ堋⒁隤DO(PHP Data Objects,一個存取數(shù)據(jù)庫的延伸函數(shù)庫)、以及許多效能上的增強[8]。目前PHP 4已經(jīng)不會繼續(xù)更新,以鼓勵用戶轉(zhuǎn)移到PHP 5。[9][10]
2008年P(guān)HP 5成為了PHP唯一的有在開發(fā)的PHP版本。將來的PHP 5.3將會加入Late static binding和一些其他的功能強化[11][12] 。PHP 6 的開發(fā)也正在進行中,主要的改進有移除register_globals[13]、magic quotes 和 Safe mode的功能。[9][14]
[編輯] 版本歷程
代表意義
紅色 舊版;官方停止支持
黃色 舊版;官方維護中
綠色 目前版本
藍色 未來版本
主要版本 次要版本 釋出日期 說明
1.0 1.0.0 1995年6月8日 正式名稱為"Personal Home Page Tools (PHP Tools)",第一次使用了"PHP"的名字。[5]
2.0 2.0.0 1994年4月16日 針對PHP 1.0的改進版,速度更快、體積更小,更容易產(chǎn)生動態(tài)網(wǎng)頁。[5]
3.0 3.0.0 1998年6月6日 開發(fā)方式改成多人共同參與。Zeev Suraski 和 Andi Gutmans 為了這個版本重寫了剖析引擎。[5]
4.0 4.0.0 2000年5月22日 改成以Zend引擎作為剖析器,具有兩階段剖析/標(biāo)簽剖析系統(tǒng)等先進功能。[15]
4.1.0 2001年12月10日 加入"超全域變量"(superglobals)功能,包含了$_GET、$_POST、 $_SESSION等[15]
4.2.0 2002年4月22日 默認取消register_globals功能。從網(wǎng)絡(luò)接收的資料將不會設(shè)定成全域變量,增加程序安全性[15]。
4.3.0 2002年12月27日 加入命令行執(zhí)行檔,稱為CLI。[15]
4.4.0 2005年7月11日 Added man pages for phpize and php-config scripts.[15]
4.4.8 2008年1月3日 Several security enhancements and bug fixes. Was to be the end of life release for PHP 4. Security updates only until 2008-08-08, if necessary.[16]
4.4.9 2008年8月7日 More security enhancements and bug fixes. The last release of the PHP 4.4 series.[17][18]
5.0 5.0.0 2004年7月13日 Zend Engine II with a new object model.[19]
5.1.0 2005年11月24日 Performance improvements with introduction of compiler variables in re-engineered PHP Engine.[19]
5.2.0 2006年11月2日 Enabled the filter extension by default.[19]
5.2.8 2008年12月8日[20] emergent bug fix[20]
5.2.9 2009年2月26日[21] 這個版本解決了5.2.*的超過了50多個錯誤和多個安全問題,增加了穩(wěn)定性。[21]
5.2.9-2(Windows) 2009年3月10日[22] 這個版本解決了在Windows系統(tǒng)下OpenSSL的安全缺陷,與其綁定的OpenSSL版本升級到0.9.8k。[22]
5.3.0 預(yù)計2009年第二季[23] 支持命名空間; 使用XMLReader和XMLWriter增強XML支持; 支持SOAP ,[24] 延遲靜態(tài)綁定, 跳轉(zhuǎn)標(biāo)簽(有限的 goto), 閉包,Native PHP archives
6.0 6.0.0 ??? 支持Unicode; 移除ereg擴展, 'register_globals', 'magic_quotes' 和 'safe_mode'; Alternative PHP Cache;Removal of mime_magic and rewrite of fileinfo() for better MIME support[25]
[編輯] 應(yīng)用
PHP 是一個應(yīng)用范圍很廣的語言,特別是在網(wǎng)絡(luò)程序開發(fā)方面。一般來說 PHP 大多在服務(wù)器端執(zhí)行,透過執(zhí)行 PHP 的程序碼來產(chǎn)生網(wǎng)頁提供瀏覽器讀取,此外也可以用來開發(fā)命令行腳本程序和使用者端的GUI應(yīng)用程序。PHP可以在許多的不同種的服務(wù)器、操作系統(tǒng)、平臺上執(zhí)行,也可以和許多數(shù)據(jù)庫系統(tǒng)結(jié)合。使用 PHP 不需要任何費用,官方組織 PHP Group 提供了完整的程序源代碼,允許使用者修改、編譯、擴充來使用。[26]
[編輯] 語法
PHP的語法參考了Perl、C語言,而且可以整合在HTML之中,以下是一個簡單的Hello World程序:
?php
echo 'Hello World!';
?
PHP剖析引擎只剖析?php到?之間的程序碼,而不包含在?php到?之間的內(nèi)容則會直接送出,所以可以用以下的方式來將PHP程序碼嵌入在HTML之中:
?php
//-PHP程式碼
?
html內(nèi)容
?php
//-PHP程式碼
?
但是在判斷語句中的HTML代碼并不會被直接送出:
?php
if (false) {
?
HTML Code
?php
}
?
PHP可以用三種注解的形式:C與C++所使用的“/*...*/”與“//”,和Perl的“#”。
[編輯] 類型
PHP主要有以下四種變量類型:
整數(shù) (integer)
浮點數(shù) (float)
布爾數(shù) (boolean)
字串 (string)
兩種復(fù)合類型:
陣列 (array)
物件 (object)
兩種特殊類型
NULL
資源 (resource)[27]
[編輯] 變量
PHP中,變量以“$”后接變量名稱來表示。變量名稱區(qū)分大小寫。有效的變量名稱以字母或底線開頭,后接任意數(shù)目的字母、數(shù)字或底線。[28]
[編輯] 面向?qū)ο?/p>
PHP從PHP 3開始有了基本的面向?qū)ο蟮奶匦?,但直到PHP 5將面向?qū)ο蟛糠葜匦赂膶懼?,PHP的面向?qū)ο蠊δ懿疟容^完善?,F(xiàn)在PHP可以說是一個有完整面向?qū)ο蠊δ艿恼Z言。
[編輯] PHP相關(guān)資源
[編輯] 函數(shù)庫
主條目:PHP函數(shù)庫列表
內(nèi)建多樣化的函數(shù)是PHP主要的特點之一,這些開放程序碼的函數(shù)提供了各種不同的功能,例如檔案處理、FTP、字串處理、等等。這些函數(shù)的使用方法和C語言相近(例如printf),這也是PHP廣為流行的原因之一。
除了內(nèi)建的函數(shù)之外,PHP也提供了很多延伸函數(shù)庫(extension),像是各種數(shù)據(jù)庫連接函數(shù)、資料壓縮函數(shù)、圖形處理等等。有些延伸函數(shù)庫需要從PECL(PHP Extension Community Library)取得。
[編輯] 源代碼編碼和加速
PHP源代碼是可以直接讀取的,即使放到服務(wù)器上執(zhí)行也是一樣。雖然讓PHP多了彈性,但相對的會造成安全危機和性能下降的問題。
透過PHP編碼器,可以保護PHP的源代碼不被讀?。▽ι虡I(yè)軟件來說特別有需求),也可以提升執(zhí)行的效能。有許多公司或團體開發(fā)PHP的編碼器,將PHP程序編譯成字節(jié)碼(byte code),再透過服務(wù)器上安裝對應(yīng)的程序來執(zhí)行PHP腳本。
除了透過編碼器加速之外,PHP還可以透過動態(tài)的快取機制來提升速度,加速工具有商業(yè)版的,例如Zend Platform,也有開放源代碼的加速軟件如eAccelerator、APC、XCache。
[編輯] 樣板引擎
樣板引擎讓PHP應(yīng)用程序可以做邏輯和使用接口上的分離,讓程序開發(fā)更容易進行,目前比較受歡迎的樣板引擎是PHP官方開發(fā)的Smarty。不過樣板引擎有效能上的爭議,因為PHP本身就是一個樣板引擎,使用樣板引擎反而變成“重新發(fā)明了輪子”(reinventing the wheel)。樣板引擎最主要的好處就是讓不懂PHP程序碼的人也可以參與使用接口的開發(fā),因為樣板引擎的語言遠比PHP簡單。
[編輯] 未來發(fā)展
[編輯] PHP 5.3
命名空間(namespaces)原本預(yù)計在PHP 6提供支持,現(xiàn)在可能改至PHP 5.3就支持[29
數(shù)值類型可以是整數(shù)或是浮點數(shù)。你可以用以下的語句來為一個數(shù)值賦值:
$a = 1234; # 十進制數(shù)
$a = -123; # 負數(shù)
$a = 0123; # 八進制數(shù) (等于十進制數(shù)的83)
$a = 0x12; # 十六進制數(shù)(等于十進制數(shù)的18)
$a = 1.234; # 浮點數(shù)"雙精度數(shù)"
$a = 1.2e3; # 雙精度數(shù)的指數(shù)形式
字符串
字符串可以由單引號或雙引號引出的字段定義。注意不同的是被單引號引出的字符串是以字面定義的,而雙引號引出的字符串可以被擴展。而且,在雙引號字符串中可以使用反斜杠(\)在字符串中加入轉(zhuǎn)義序列與轉(zhuǎn)換字符。舉例如下:
$first = hello;
$second = "world";
$full1 = "$first $second"; # 產(chǎn)生 hello world
$full2 = $first $second;# 產(chǎn)生 $first $second
$full3="01dc studio,\." 2000 copyright.\" " ;
請注意最后一行,如果需要在字符串中使用雙引號,可以使用反斜杠字符,象該行語句所示。這里的的反斜杠用來使雙引號的功能改變。
可以將字符與數(shù)字利用運算符號連接起來。字符被轉(zhuǎn)化成數(shù)字,利用其最初位置。在php手冊中有詳細的例子。
數(shù)組與哈希表
數(shù)組與哈希表以同樣的方法被支持。怎樣運用取決于你怎樣定義它們。你可以用list()或者array()來定義它們,也可以直接為數(shù)組賦值。數(shù)組的索引從0開始。雖然我在這里沒有說明,但是你一樣可以輕易的使用多維數(shù)組。
// 一個包含兩個元素的數(shù)組
$a[0] = "first";
$a[1] = "second";
$a[] = "third"; // 添加數(shù)組元素的簡單方法
// 現(xiàn)在$a[2]被賦值為"third"
echo count($a); // 打印出3,因為該數(shù)組有3個元素
// 用一個語句定義一個數(shù)組并賦值
$myphonebook = array (
"sbabu" =$#@62; "5348",
"keith" =$#@62; "4829",
"carole" =$#@62; "4533"
);
// 噢,忘了教長吧,讓我們添加一個元素
$myphonebook["dean"] = "5397";