php基礎知識學習筆記
PHP 獨特的語法混合了C、Java、Perl以及PHP自創的語法。它可以比CGI或者Perl更快速地執行動態網頁。以下是小編為大家搜索整理的php基礎知識學習筆記, 希望能給大家帶來幫助!更多精彩內容請及時關注我們應屆畢業生考試網!
例子 名稱 結果$a + $b 聯合 $a 和 $b 的聯合$a == $b 相等 如果 $a 和 $b 具有相同的鍵/值對則為 TRUE$a === $b 全等 如果 $a 和 $b 具有相同的鍵/值對並且順序和類型都相同則為 TRUE$a != $b 不等 如果 $a 不等於 $b 則為 TRUE$a <> $b 不等 如果 $a 不等於 $b 則為 TRUE$a !== $b 不全等 如果 $a 不全等於 $b 則為 TRUE
+ 運算符把右邊的數組元素附加到左邊的數組後面,兩個數組中都有的鍵名,則只用左邊數組中的,右邊的被忽略。
對象
要初始化一個對象,用 new 語句將對象實例到一個變量中。
常用函數
strlen() 函數用於計算字符串的長度。
strpos() 函數用於在字符串內檢索一段字符串或一個字符。
常量
可以用 define() 函數來定義常量。一個常量一旦被定義,就不能再改變或者取消定義。
常用的魔術常量:
定義常量例子:
php字符串運算符
在 PHP 中,只有一個字符串運算符。
並置運算符 (.) 用於把兩個字符串值連接起來。如:echo "a= ".$a."
";
左邊將字符串文字"a="與變量$a的值連接,第二處是與換行符"
"連接
php函數
函數只有在被調用時才會被執行,這點和js是一樣的,同樣,函數定義也是以function關鍵字開頭的。
當沒有return語句時,以上將會變成"-2+10=";
流程控制
在這裏,只講下foreach語句。
foreach語句遍歷輸出數組:
語法:
foreach (array_expression as $value){ statement};
foreach (array_expression as $key => $value){ statement};
參數array_expression是指定要遍歷的數組,$value是數組的值
以上代碼將輸出:
Name:Marry
Name:Lorry
Name:mike
兩個重要的魔術方法
1. __set( )方法:這個方法用來為私有成員屬性設置值的,有兩個參數,第一個參數為你 要為設置值的.屬性名,第二個參數是要給屬性設置的值,沒有返回值。
2. __get()方法:這個方法用來獲取私有成員屬性值的,有一個參數,參數傳入你要獲取的成員屬性的名稱,返回獲取的屬性值,這個方法不用我們手工的去調用
php中方法不區分大小寫
require(dirname(__FILE__).'/'); //引入全局文件
require(dirname(__FILE__).'/'); //引入基本配置文件
對象運算符和雙冒號運算符
在類的成員方法裏面,可以用 ->(對象運算符):$this->property(其中 property 是該屬性名)這種方式來訪問非靜態屬性。
靜態屬性則是用 ::(雙冒號):self::$property 來訪問。
=>和->
=>數組成員訪問符號,->對象成員訪問符號;
$this->$name=$value:將當前類的name變量的值設為$value;
$this代表了類本身,->是訪問其類成員的操作符
雙冒號運算符(::)類名::靜態屬性/方法
“::”用來調用類中靜態的屬性和方法
include():包含外部文件,語法格式為 include(string filename);
require():會輸出錯誤信息,終止腳本
include_once():多次調用相同文件時,程序只會調用一次
require_once():先檢查文件是否在其他地方被調用過
array_pop():獲取並返回數組中的最後一個元素
count():統計數組中的元素個數
array_search():獲取數組中元素的鍵名
$array_keys():獲取數組中重複元素的所有鍵名
單引號和雙引號
PHP把單引號中的數據視為普通字符串,不再處理。而雙引號還要對其中的字符串進行處理
get和post
$_GET[ ]和$_POST[ ]全局數組:分別用來接收GET和POST方法傳遞到當前頁面的數據。“[ ]”裏面是name.
php參數傳遞常用的方法有3種:$_POST[ ]、$_GET[ ]、$_SESSION[ ],分別用於獲取表單、URL與Session變量的值。
表單提交中get和post方式的區別歸納如下幾點:
GET是從服務器上獲取數據,POST是向服務器傳送數據。GET 是把參數數據隊列加到提交表單的ACTION屬性所指的URL中,值和表單內各個字段一一對應,在URL中可以看到。POST是通過HTTP POST機制,將表單內各個字段與其內容放置在HTML HEADER內一起傳送到ACTION屬性所指的URL地址。用户看不到這個過程。對於GET方式,服務器端用yString獲取變量的值,對於POST方式,服務器端用獲取提交的數據。GET傳送的數據量較小,不能大於2KB(這主要是因為受URL長度限制)。POST傳送的數據量較大,一般被默認為不受限制。但理論上,限制取決於服務器的處理能力。GET 安全性較低,POST安全性較高。因為GET在傳輸過程,數據被放在請求的URL中,而如今現有的很多服務器、代理服務器或者用户代理都會將請求URL記 錄到日誌文件中,然後放在某個地方,這樣就可能會有一些隱私的信息被第三方看到。另外,用户也可以在瀏覽器上直接看到提交的數據,一些系統內部消息將會一 同顯示在用户面前。POST的所有操作對用户來説都是不可見的。
在FORM提交的時候,如果不指定Method,則默認為 GET請求(默認是POST),Form中提交的數據將會附加在url之後,以?分開與url分開。字母數字字符原樣發送,但空格轉換為“+” 號,其它符號轉換為%XX,其中XX為該符號以16進製表示的ASCII(或ISO Latin-1)值。GET請求請提交的數據放置在HTTP請求協議頭中,而POST提交的數據則放在實體數據中;GET方式提交的數據最多隻能有2048字節,而POST則沒有此限制。POST傳遞的參數在doc裏,也就http協議所傳遞的文本,接受時再解析參數部分。獲得參數。一般用POST比較好。POST提交數據是隱式的,GET是通過在url裏面傳遞的,用來傳遞一些不需要保密的數據,GET是通過在URL裏傳遞參數,POST不是。
請求的數據會附在URL之後(就是把數據放置在HTTP協議頭中),以?分割URL和傳輸數據,參數之間以&相連
方式提交的數據最多隻能是1024字節,理論上POST沒有限制,可傳較大量的數據,IIS4中最大為80KB,IIS5中為100KB
HTTP狀態碼
cookie和session區別
cookie的內容主要包括:名字,值,過期時間,路徑和域。路徑與域一起構成cookie的作用範圍。若不設置過期時間,則表示這個cookie的生命期為瀏覽器會話期間,關閉瀏覽器窗口,cookie就消失。這種生命期為瀏覽器會話期的cookie被稱為會話cookie。會話cookie一般不存儲在硬盤上而是保存在內存裏,當然這種行為並不是規範規定的。若設置了過期時間,瀏覽器就會把cookie保存到硬盤上,關閉後再次打開瀏覽器,這些cookie仍然有效直到超過設定的過期時間。
當程序需要為某個客户端的請求創建一個session時,服務器首先檢查這個客户端的請求裏是否已包含了一個session標識(稱為session id),如果已包含則説明以前已經為此客户端創建過session,服務器就按照session id把這個session檢索出來使用(檢索不到,會新建一個),如果客户端請求不包含session id,則為此客户端創建一個session並且生成一個與此session相關聯的session id,session id的值應該是一個既不會重複,又不容易被找到規律以仿造的字符串,這個session id將被在本次響應中返回給客户端保存。保存這個session id的方式可以採用cookie,這樣在交互過程中瀏覽器可以自動的按照規則把這個標識發送給服務器。
1、cookie數據存放在客户的瀏覽器上,session數據放在服務器上。
2、cookie不是很安全,別人可以分析存放在本地的COOKIE並進行COOKIE欺騙考慮到安全應當使用session。
3、session會在一定時間內保存在服務器上。當訪問增多,會比較佔用你服務器的性能考慮到減輕服務器性能方面,應當使用COOKIE。
4、單個cookie保存的數據不能超過4K,很多瀏覽器都限制一個站點最多保存20個cookie。
5、所以個人建議:
將登陸信息等重要信息存放為SESSION
其他信息如果需要保留,可以放在COOKIE中
php代碼規範
1.變量賦值必須保持相等間距和排列
2.每行結尾不允許有多餘的空格
3.確保文件的命名和調用大小寫一致,是由於類Unix系統上面,對大小寫是敏感的
4.方法名只允許由字母組成,下劃線是不允許的,首字母要小寫,其後每個單詞首字母要大寫
5.屬性的命名只允許由字母組成,下劃線是不允許的⋯⋯
6.對於對象成員的訪問,我們必須始終使用“get"和"set"方法
7.當類成員方法被聲明為private時,必須以雙下劃線"__"開頭;被聲明為protected時,必須以單下劃線"_"開頭;聲明為public的成員屬性則在任何時候都不允許含有下劃線。
8.如果我們需要把一些經常使用的方法定義為全局函數,那麼應該把它們以靜態(static)的形式定義在類中
9.函數的命名使用小寫和下劃線,應該能夠描述清楚該函數的功能。
ean值和null值都採用小寫。
11.當一個字符串是純文本組成的時候(即不含有變量),則必須總是以單引號(')作為定界符
12.使用array類型聲明關聯數組的時候,應將它分成多行,保證每行的鍵與值的對齊
13.類中所有代碼都必須用四個空格進行縮進
14.不允許用var來聲明變量,類成員變量必須以private,protected和public來聲明。通常用get和set方法來訪問類成員。
15.方法必須總是用private,protected或者public來聲明其作用域
16.在函數或方法名與參數括號之間不允許出現多餘的空格
-
用PHP實現文件上傳二法
PHP(HypertextPreprocessor)是一種HTML內嵌式的語言(類似IIS上的ASP)。而PHP獨特的語法混合了C、Java、Perl以及PHP式的新語法。它可以比CGI或者Perl更快速的執行動態網頁。除此之外,用PHP寫出來的Web後端CGI程序,可以很輕易的移植到不同的系統平台上。我們在做...
-
PHP常用開發技巧
PHP開發常用技巧能使你在開發過程中快而有效.以下就是小編精心推薦PHP常用開發技巧,希望對大家有幫助!1使用dowhile避免多層if語句嵌套我們直接舉例説明:實現方式①if($name=='hedong'){if($sex=='male'){if($major=='PHP'){$ret='...
-
PHP程序員基本要求和必備技能
PHP程序員有什麼必備知識呢?以下是本站小編精心為大家整理的PHP程序員基本要求和必備技能,希望對大家成為程序員有所幫助!更多內容請關注應屆畢業生網!一名PHP程序員的基本要求:1、精通html、CSS、JS等網站前端技術。2、掌握PHP編程技術。3、瞭解Linux及Apache、...
-
tp搜索時首頁分頁和搜索頁保持條件分頁的方法
在做搜索查詢時突然發現在首頁用的`分頁代碼在搜索頁使用時出現錯誤,首頁分頁代碼(代碼中標註start與end部分為分頁代碼),下面是由本站小編為大家整理的Thinkphp搜索時首頁分頁和搜索頁保持條件分頁的方法,喜歡的可以收藏一下!瞭解更多詳情資訊,請關注應屆畢業生...