《PHP編程:php學習筆記之基礎知識》要點:
本文介紹了PHP編程:php學習筆記之基礎知識,希望對您有用。如果有疑問,可以聯系我們。
php學習至今一年有余,筆記積累挺多的,也挺雜的,寫篇文章整理一下吧.PHP實例
php基礎部分 PHP實例
PHP實例
PHP
輸出文本的基礎指令:echo
和 print
.PHP實例
echo和print的區別 PHP實例
echo
是PHP語句, print
和print_r
是函數,語句沒有返回值,函數可以有返回值(即便沒有用)PHP實例
echo
輸出一個或者多個字符串.print
只能打印出簡單類型變量的值(如int,string)print_r
可以打印出復雜類型變量的值(如數組,對象)PHP實例
var_dump和print_r的區別PHP實例
var_dump
返回表達式的類型和值,而print_r
僅返回結果,相比調試代碼使用var_dump
更便于閱讀.PHP實例
變量 PHP實例
變量用于存儲值,比如數字、文本字符串或數組.PHP 中的所有變量都是以 $ 符號開始的.
PHP 變量名稱對大小寫敏感!PHP實例
PHP 有三種不同的變量作用域:PHP實例
local(局部)
global(全局)
static(靜態)
函數之外聲明的變量擁有 Global
作用域,只能在函數以外進行拜訪.PHP實例
函數內部聲明的變量擁有 LOCAL
作用域,只能在函數內部進行拜訪.PHP實例
global
關鍵詞用于拜訪函數內的全局變量.PHP實例
PHP static 關鍵詞 PHP實例
通常,當函數完成/執行后,會刪除所有變量.不過,有時我需要不刪除某個局部變量.實現這一點需要更進一步的工作.PHP實例
要完成這一點,請在您首次聲明變量時使用 static 關鍵詞:PHP實例
<?php???
function myTest() {
?? static $x=-1;
?? echo $x;
?? $x--;
}
myTest();//-1
echo "<br>";
myTest();//-2
echo "<br>";
myTest();//-3
?>
php類型PHP實例
php類型:**PHP 支持八種原始類型.**
PHP實例
布爾型 PHP實例
要指定一個布爾值,使用關鍵字 TRUE 或 FALSE.兩個都是大小寫不敏感的.PHP實例
整型 PHP實例
我們可以使用(int)來將小數強制類型轉換成整數.PHP實例
<?php
??? var_dump((int)(26/3));//int(8)
?>
數組PHP實例
php中有三種數組:PHP實例
索引數組:就是下標是順序整數作為作為索引(比如第幾排第幾列)$class[5]
關聯數組:就是下標是字符串作為索引(比如名字)$class2["zhangsan"]
多維數組 - 包含一個或多個數組的數組
下標要嘛是整數,要么是字符串.PHP實例
<?php
$array = array(
??? "foo" => "bar",
??? "bar" => "foo",
);
// 自 PHP 5.4 起
$array = [
??? "foo" => "bar",
??? "bar" => "foo",
];
?>
數組單元可以通過 array[key]
語法來拜訪.
Note: 這并不意味著總是給鍵名加上引號.用不著給鍵名為常量或變量的加上引號,否則會使 PHP
不能解析它們.PHP實例
數組運算符 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+
運算符把右邊的數組元素附加到左邊的數組后面,兩個數組中都有的鍵名,則只用左邊數組中的,右邊的被忽略.PHP實例
對象 PHP實例
要初始化一個對象,用 new 語句將對象實例到一個變量中.PHP實例
常用函數 PHP實例
strlen() 函數用于計算字符串的長度.
strpos() 函數用于在字符串內檢索一段字符串或一個字符.PHP實例
常量 PHP實例
可以用 define() 函數來定義常量.一個常量一旦被定義,就不能再改變或者取消定義.
常用的魔術常量:PHP實例
PHP實例
定義常量例子:PHP實例
<?php
define("poems" , "Homeric epic");
echo poems ;//outputs "Homeric epic"
?>
php字符串運算符PHP實例
在 PHP 中,只有一個字符串運算符.
并置運算符 (.)
用于把兩個字符串值連接起來.如:echo "a= ".$a."<br>";
左邊將字符串文字"a="與變量$a的值連接,第二處是與換行符"<br>"
連接PHP實例
php函數 PHP實例
函數只有在被調用時才會被執行,這點和js是一樣的,同樣,函數定義也是以function關鍵字開頭的.PHP實例
<?php
??? function sum($x,$y){
??????? $z=$x + $y;
??????? return $z;
??? }
??? echo "-2+10= ".sum(-2,10);//outputs "-2+10=8"
?>
當沒有return
語句時,以上將會變成"-2+10=";PHP實例
流程控制 PHP實例
在這里,只講下foreach
語句.PHP實例
foreach
語句遍歷輸出數組:
語法:PHP實例
foreach (array_expression as $value){ statement};
foreach (array_expression as $key => $value){ statement};
參數array_expression
是指定要遍歷的數組,$value
是數組的值PHP實例
<?php
???? $actors [0] ="Marry";
???? $actors [1] ="Lorry";
???? $actors [2] = "mike";
???? foreach ($actors as $values){
???? echo "Name:$values<br>";
}
?>
以上代碼將輸出:
Name:Marry
Name:Lorry
Name:mikePHP實例
兩個重要的魔術辦法PHP實例
1. __set( )辦法:這個辦法用來為私有成員屬性設置值的,有兩個參數,第一個參數為你 要為設置值的屬性名,第二個參數是要給屬性設置的值,沒有返回值.
2. __get()辦法:這個辦法用來獲取私有成員屬性值的,有一個參數,參數傳入你要獲取的成員屬性的名稱,返回獲取的屬性值,這個辦法不用我們手工的去調用
php中辦法不區分大小寫PHP實例
require(dirname(__FILE__).'/global.php'); //引入全局文件
require(dirname(__FILE__).'/config.ini.php'); //引入基本配置文件
對象運算符和雙冒號運算符PHP實例
在類的成員方法里面,可以用 ->(對象運算符):$this->property
(其中 property 是該屬性名)這種方式來拜訪非靜態屬性.
靜態屬性則是用 ::
(雙冒號):self::$property
來拜訪.PHP實例
=>和->PHP實例
=>
數組成員拜訪符號,->
對象成員拜訪符號;$this
->$name=$value
:將當前類的name
變量的值設為$value
;$this
代表了類本身,->
是拜訪其類成員的操作符
雙冒號運算符(::
)類名::
靜態屬性/方法
“::
”用來調用類中靜態的屬性和方法PHP實例
include()
:包含外部文件,語法格式為 include(string filename);require()
:會輸出錯誤信息,終止腳本include_once()
:多次調用相同文件時,程序只會調用一次require_once()
:先檢查文件是否在其他地方被調用過array_pop()
:獲取并返回數組中的最后一個元素count()
:統計數組中的元素個數array_search()
:獲取數組中元素的鍵名$array_keys()
:獲取數組中重復元素的所有鍵名PHP實例
單引號和雙引號 PHP實例
PHP把單引號中的數據視為普通字符串,不再處理.而雙引號還要對其中的字符串進行處理PHP實例
get和post PHP實例
$_GET[ ]和$_POST[ ]全局數組:分別用來接收GET和POST辦法傳遞到當前頁面的數據.“[ ]”里面是name.PHP實例
php參數傳遞常用的辦法有3種:$_POST[ ]、$_GET[ ]、$_SESSION[ ],分別用于獲取表單、URL與Session變量的值.PHP實例
表單提交中get和post方式的區別歸納如下幾點:PHP實例
GET是從服務器上獲取數據,POST是向服務器傳送數據.
GET 是把參數數據隊列加到提交表單的ACTION屬性所指的URL中,值和表單內各個字段一一對應,在URL中可以看到.POST是通過HTTP POST機制,將表單內各個字段與其內容放置在HTML HEADER內一起傳送到ACTION屬性所指的URL地址.用戶看不到這個過程.
對于GET方式,服務器端用Request.QueryString獲取變量的值,對于POST方式,服務器端用Request.Form獲取提交的數據.
GET傳送的數據量較小,不能大于2KB(這主要是因為受URL長度限制).POST傳送的數據量較大,一般被默認為不受限制.但理論上,限制取決于服務器的處理能力.
GET 安全性較低,POST安全性較高.因為GET在傳輸過程,數據被放在哀求的URL中,而如今現有的很多服務器、代理服務器或者用戶代理都會將哀求URL記 錄到日志文件中,然后放在某個地方,這樣就可能會有一些隱私的信息被第三方看到.另外,用戶也可以在瀏覽器上直接看到提交的數據,一些系統內部消息將會一 同顯示在用戶面前.POST的所有操作對用戶來說都是不可見的.
在FORM提交的時候,如果不指定Method,則默認為 GET哀求(.net默認是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不是.PHP實例
1.GET哀求的數據會附在URL之后(就是把數據放置在HTTP協議頭中),以?分割URL和傳輸數據,參數之間以&相連PHP實例
2.GET方式提交的數據最多只能是1024字節,理論上POST沒有限制,可傳較大量的數據,IIS4中最大為80KB,IIS5中為100KBPHP實例
HTTP狀態碼 PHP實例
PHP實例
cookie和session區別 PHP實例
cookie的內容主要包括:名字,值,過期時間,路徑和域.路徑與域一起構成cookie的作用范圍.若不設置過期時間,則表示這
個cookie的生命期為瀏覽器會話期間,關閉瀏覽器窗口,cookie就消失.這種生命期為瀏覽器會話期的cookie被稱為會話cookie.
會話cookie一般不存儲在硬盤上而是保存在內存里,當然這種行為并不是規范規定的.若設置了過期時間,瀏覽器就會把cookie
保存到硬盤上,關閉后再次打開瀏覽器,這些cookie仍然有效直到超過設定的過期時間.PHP實例
當程序需要為某個客戶端的哀求創建一個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實例
php代碼規范 PHP實例
1.變量賦值必須保持相等間距和排列PHP實例
2.每行結尾不允許有多余的空格PHP實例
3.確保文件的命名和調用大小寫一致,是由于類Unix系統上面,對大小寫是敏感的PHP實例
4.辦法名只允許由字母組成,下劃線是不允許的,首字母要小寫,其后每個單詞首字母要大寫PHP實例
5.屬性的命名只允許由字母組成,下劃線是不允許的??PHP實例
6.對于對象成員的拜訪,我們必須始終使用“get"和"set"方法PHP實例
7.當類成員辦法被聲明為private時,必須以雙下劃線"__"開頭;被聲明為protected時,必須以單下劃線"_"開頭;聲明為public的成員屬性則在任何時候都不允許含有下劃線.PHP實例
8.如果我們需要把一些經常使用的辦法定義為全局函數,那么應該把它們以靜態(static)的形式定義在類中PHP實例
9.函數的命名使用小寫和下劃線,應該能夠描述清楚該函數的功能.PHP實例
10.Boolean值和null值都采用小寫.PHP實例
11.當一個字符串是純文本組成的時候(即不含有變量),則必須總是以單引號(')作為定界符PHP實例
12.使用array類型聲明關聯數組的時候,應將它分成多行,保證每行的鍵與值的對齊PHP實例
13.類中所有代碼都必須用四個空格進行縮進PHP實例
14.不允許用var來聲明變量,類成員變量必須以private,protected和public來聲明.通常用get和set方法來拜訪類成員.PHP實例
15.辦法必須總是用private,protected或者public來聲明其作用域PHP實例
16.在函數或辦法名與參數括號之間不允許出現多余的空格PHP實例
維易PHP培訓學院每天發布《PHP編程:php學習筆記之基礎知識》等實戰技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養人才。