php 基礎系列之 php快速入門


·插補操作
將簡單變量寫入一個由雙引號引用的字符串中,就叫插補操作。例如:
$test = 'xx';
echo "你好:$test";
注意:插補操作只是雙引號引用字符串的特性。
·變量和字面量
參照上面的例子。'xx'是字面量,而 $test是變量。
·數據類型
·Integer(整數):用來表示整數
·Float(浮點數,也叫Double,雙精度):用來表示所有的實數
·String(字符串):用來表示字符串
·Boolean(布爾值):用來表示true或者false
·Array(數組):用來保存具有相同類型的多個數據項
·Obejct(對象):用來保存類的實例
特殊類型
·NULL(空):沒有被賦值、已經被重置或者被賦值被特殊值NULL的變量就是NULL類型變量。
·resource(資源):特定的內置函數(例如數據庫函數)將返回resource類型的變量。它們代表外部資源(例如數據庫連接)。
基本上不能直接操作一個resource變量,但是通常它們都將被函返回,而且必須作為參數傳遞給其他函數。
·Callable :通常都是可以傳遞給其他函數的函數。
·類型強度
PHP是一種弱類型語言,或者動態類型語言,變量的類型是由賦給變量的值確定的。
·類型轉換
使用類型轉換,可以將一個變量或值轉換成另一種類型。只需在希望進行類型轉換的變量之前的圓括號中插入需要轉換的臨時數據類型即可。
$num = 0;
$theNum = (float)$num;
第二行代碼的意思是:取出保存在$num的值,將其解釋成一個浮點型,並將其保存在$theNum中。$theNum變量將變成浮點類型。
·可變變量
PHP提供了一種其他類型的變量:可變變量。可變變量允許我們動態地改變一個變量的名稱。
這個特性的工作原理是用一個變量的值作為另一個變量的名稱。例如:
$varname = 'tireqty'; //於是可以用 $$varname 取代 $tireqty。
$$varname = 5; // 這段代碼等價於:$tireqty = 5;
·聲明變量和使用常量
定義方式:
define('NAME','程琳');
echo NAME;
通常常量名稱都是由大寫字母組成的,這是借鑒了C語言的慣例,這樣就很容易區分變量和常量。
注意:常量只可保存布爾值、整數、浮點數或者字符串數據,這些類型都是標量數據。
·變量作用域
·內置超全局變量可以在腳本的任何地方使用和可見。
·常量,一旦被聲明,將在全局可見;也就是說,它們可以在函數內外使用。
·在一個腳本中聲明的全局變量在整個腳本中是可見的,但不是在函數內部。
·函數內部使用的變量聲明為全局變量時,其名稱要與全局變量名稱一致。
·在函數內部創建並被聲明為靜態的變量無法在函數外部可見,但是可以在函數的多次執行調用過程中保持該值。
·在函數內部創建的變量對函數來說時本地的,而當函數終止時,該變量也就不存在了。
·超全局變量
即在全部作用域中始終可用的內置變量
·$GOLBALS :所有全局變量數組 ($GLOBALS['_SERVER']
·$_SERVER : 服務器環境變量數組
·$_GET : 通過GET方法傳遞給該腳本的變量數組
·$_POST : 通過POST方法傳遞給該腳本的變量數組
·$_COOKIE : cookie變量數組
·$_FILES : 與文件上載相關的變量數組
·$_ENV : 環境變量數組
·$_REQUEST : 所有用戶輸入的變量數組,包括_GET、$_POST和$_COOKIE所包含的輸入內容(但是,不包括$_FILES
·$_SESSION : 會話變量數組
·操作符
·算術操作符
+ - * / %
你應該注意到,算數操作符通常用於整型或雙精度類型的數據。如果將它們應用到字符串,PHP會試圖將這些字符串轉換成一個數字。
如果其中包含'e' 或 "E" 字符,它會被當做科學表示法並被轉換成浮點數,否則將被轉換成整數。PHP會在字符串開始處尋找數字
,並使用這些數字作為該字符串的值,如果沒有在開始處找到數字,該字符串的值為0
·字符串操作符
.
·賦值操作符
=
·賦值運算返回值
與其他操作符一樣,使用賦值操作符也會返回一個值:
echo 1 + ($a = 2); // 3
·復合賦值操作符
+= -= *= /= %= .=
·前置遞增遞減和后置遞增遞減操作符
省略...
·引用操作符
·通常,在將一個變量的值賦給另一個變量的時候,先產生原變量的一個副本,然后再將它保存在內存的其它地方。
$a = 5;
$b = $a;
這兩行代碼首先產生$a 的一個副本,然后再將它保存到$b中。如果隨后改變$a的值,$b的值不會被改變。

·要避免產生副本,可以使用引用操作符:
$a = 5;
$b = &$a;
引用操作符非常有趣,請記住,引用就像一個別名,而不是一個指針。$a和$b都指向了內存的相同地址。你可以通過重置使
變量不指向原來的內存地址:
unset($a);
重置變量並不會改變$b(7)的值,但是可以破壞$a和值7在內存中地址的鏈接。
·比較操作符
比較操作符用來比較兩個值。比較操作符表達式根據比較結果返回邏輯值:true 或 false;
·等於操作符
等於操作符==(兩個等號)允許測試兩個值是否相等
·其它比較操作符
=== : 恆等,只有兩邊的操作數相等並且具有相同的數據類型時,才返回true
<> : 不等,作用相當於 !=
·邏輯操作符
! , && , ||
·位操作符
不常用,省略
·其它操作符
·三元操作符
condition ? value if true : value if false;
·錯誤抑制操作符
錯誤抑制操作符@可以在任何表達式之前使用,即任何有值的或者可以計算出值的表達式之前。
$a = @(1/0);
var_dump($a); //false
如果沒有@操作符,這一行代碼將產生一個除0警告,使用這個操作符后,這個警告就會被抑制住。
·數組操作符
PHP提供了一些數組操作符,數組操作符([])支持訪問數組元素。在某些數組上下文中,也可以使用=>操作符
其他數組操作符
操作符 名稱 使用方法 結果
+ 聯合 $a+$b 返回一個包含了$a和$b中所有元素的數組
== 等價 $a== $b 如果 $a,$b有相同的鍵值對,返回true
=== 恆等 $a=== $b 如果$a,$b有相同的鍵值對以及相同的順序,返回true
!= 非等價
<> 非等價
!== 非恆等
注意:不能將標量類型與數組進行比較。
·類型操作符
只有一個類型操作符:instanceof 。這個對象在面對對象編程中使用。
instanceof操作符允許檢查一個對象是否為特定類的實例。
class sampClass{};
$myObject = new sampClass();
var_dump($myObject instanceof sampClass); //true
·使用變量處理函數
·大部分變量函數都測試一個函數的類型相關。PHP有兩個最常見的變量函數,分別是gettype()和settype()
string gettype(mixed var);
bool settype(mixed var , string type);
·要使用gettype()函數,必須先給它傳遞一個變量。它將確定變量的類型並返回一個包含類型名稱的字符串:boolean、integer、
double(用於浮點型,因歷史原因易混淆)、string、array、object、resource或NULL。如果變量類型不是標准類型之一,
該函數就會返回"unknown type";
·要使用settype()函數,必須先給它傳遞一個要改變類型的變量,以及包含了上述類型列表中某個類型的字符串。
$test = 1;
var_dump(gettype($test)); //integer
var_dump(settype($test,'double')); //true
var_dump(gettype($test)); //double
·PHP還提供了一些特定的類型測試函數。每一個函數都使用一個變量作為其參數,並返回true或者false:
is_array()
is_double(),is_float(),is_real()(所有都時相同的函數)
is_long(),is_int(),is_integer()(所有都時相同的函數)
is_string()
is_bool()
is_object()
is_resource() :檢測變量是否是一個資源
is_null()
is_scalar() :檢測變量是否是標量,也就是,是否為整數、布爾值、字符串或浮點數
is_numeric() :檢測變量是否是任何類型的數字或數字字符串
is_callable() :檢測變量是否是有效的函數名稱
·檢測變量狀態函數:
·isset()
bool isset(mixed var[, mixed var[,...]])
這個函數需要一個變量名做參數。也可以傳遞一個由逗號間隔的變量列表
·unset()
void unset(mixed var[, mixed var[,...]])
你也可以使用與isset()函數相對應的unset()函數對應的unset()函數來銷毀一個變量
·empty()
bool empty(mixed var)
·變量的重解釋
你可以通過調用一個函數來實現轉換變量數據類型的目的。如下3個函數可以用來實現這個功能
int intval(mixed var[,int base=10]) :允許在要轉換的變量為字符串時,指定轉換的進制基數(這樣,可以將16進制的字符串轉換為整數)
float floatval(mixed var)
string strval(mixed var)
·混合數據類型
本書和php.net文檔都提到了'混合'數據類型,事實上PHP並沒有這個類型。但PHP在類型處理方面非常靈活,因此很多函數可以多種(或者任意)
數據類型作為參數。這些類型所允許的參數通常都是偽"混合"類型。
·根據條件進行決策
控制結構是程序語言中用來控制程序或腳本執行流程的結構。我們可以把它們分類為條件(或者分支)結構和重復結構(或循環結構)
·switch : switch語句與js的switch語句類似,區別在於php的switch語句switch在比較值使用的是相等操作符,因此會發生類型轉換。
·break 和 continue :和js類似


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM