本文章詳細的介紹了在php學習中的最基礎的內容包括了基本數據類型、變數類型、操作符等入門都會要接觸到的東西。-php支持的基本數據類型:Integer:整數Float(Double,雙精度值):浮點數,表示所有實數String:字元串Boolean:布爾值,true/falseArray:保存具有相
本文章詳細的介紹了在php學習中的最基礎的內容包括了基本數據類型、變數類型、操作符等入門都會要接觸到的東西。
-
php支持的基本數據類型:
Integer:整數
Float(Double,雙精度值):浮點數,表示所有實數
String:字元串
Boolean:布爾值,true/false
Array:保存具有相同類型的多個數據項
Object:對象,保存類的實例
NULL:沒有被賦值、已經被重置或被賦值為特殊值NULL的變數
特定的內置函數(例如資料庫函數)將返回resource類型的變數
四種標量類型:
string(字元串)
integer(整型)
float(浮點型,也作 double )
boolean(布爾型)
兩種複合類型:
array(數組)
object(對象)
兩種特殊類型:
resource(資源)
NULL(空)
查看變數類型
通過 gettype() 函數可以方便的查看某個變數的類型:
代碼如下 複製代碼
<?php
$var_bool = TRUE; // a boolean
$var_str = "foo"; // a string
$var_int = 12; // an integer
echo gettype($var_bool); // 輸出 boolean
echo gettype($var_str); // 輸出 string
echo gettype($var_int); // 輸出 integer
?>
提示
由於歷史原因,如果是 float 類型數據,gettype() 函數返回的是 double,而不是 float 。
如果想查看某個表達式的值和類型,請使用用 var_dump() 函數。
判斷變數類型
如果想通過判斷變數類型來確定下一步邏輯動作,不要使用 gettype() ,而使用 is_type 系列函數:
代碼如下 複製代碼
<?php
$var_int = 12;
// 如果 $var_int 是 int 類型,這進行加法
if (is_int($var_int)) {
$var_int = $var_int+4;
}
echo $var_int; // 輸出 16
?>
NULL和resource都代表外部資源,例如資料庫連接
基本上不能直接操作一個resource變數,但是通常它們都將被函數返回,而且必須作為參數傳遞給其他函數。
在php中,變數的類型是由賦給變數的值確定的。(動態類型語言)
PHP可以在任何時間根據保存在變數中的值來確定變數的類型,也就是具有在任何時間透明地改變變數類型的功能。
PHP將“自動地”獲得輸入的數據類型,一旦從變數中檢索變數值,它將返回具有相同數據類型的數據。
養成習慣:常量名稱都是由大寫字母組成的。這樣容易區分變數和常量。
常量和變數之間的一個重要不同點在於引用一個常量的時候,它前面並沒有$符號。
常量和變數的另一個差異在於常量只可以保存布爾值、整數、浮點數或字元串數據,這些類型都是標量數據。
變數類型變化(juggling)
PHP不需要(或者說不支持)在聲名變數明確他的變數類型;一個變數的類型是由這個變數被使用的前後關係來決定的,也就是說,如果你給一個變數var賦了 一個字元串的值,var就變成了字元串變數。如果你再將一個整數賦值給var,他又變成了一個整數型變數。 一個PHP自動轉化變數類型的例子是加法的操作符’+’。如果任何一個操作數都是雙精度數,那麼所有的操作數被當作雙精度數求值,並且結果也是雙精度數。 否則,操作數將被認為是整數,結果也將會是整數。註意這並不影響每個操作數本身的變數類型,唯一的變化就是操作數在計算的過程中被如何處理。 $foo = "0"; // $foo 是一個字元串 ,值是“0”(ASCII 48)
PHP代碼
代碼如下 複製代碼
$foo = "http://www.hzhuti.com/HTC/G11/"; // $foo 是一個字元串 ,值是“0”(ASCII 48)
$foo++; // $foo 是一個字元串,值是“1”(ASCII 49)
$foo += 1; // $foo 現在是一個整數(2)了
$foo = $foo + 1.3; // $foo 現在是一個雙精度數(3.3)了
$foo = 5 + "10 Little Piggies"; // $foo 是一個整數 (15)
$foo = 5 + "10 Small Pigs"; // $foo 是一個整數 (15)
如果你覺得上面例子中最後兩個表達式看起來有點奇怪的話,請看 “字元串的轉化”部分。 如果你希望強制一個變數被當作某種固定的類型來計算,請看 “類型強制(casting)” 一節。如果你希望轉變一個變數的類型,請看函數“settype()”的說明。
確定一個變數的類型
因為PHP自己決定變數的類型並且一般按照需要轉化他們,一個特定的變數的類型不是在任何時間都非常明顯。PHP包括一些函數可以找出這個變數的類型。這 些函數是gettype(), is_long(), is_double(), is_string(), is_array(), 和 is_object().
類型強制(type casting)
在PHP中類型強制同在C語言中大抵相似:將需要的類型的種類寫在要強制的變數的前面的圓括弧中。
PHP代碼
代碼如下 複製代碼
$foo = 10; // $foo 是一個整數
$bar = (double) $foo; // $bar 是一個雙精度數
以下的強制方式是允許的: (int), (integer) – 強製成整數 (real), (double), (float) – 強製成雙精度數 (string) – 強製成字元串 (array) – 強製成數組 (object) – 強製成對象 註意在圓括弧中允許製表符(tabs)和空格(spaces) ,因此下麵的語句是等價的: $foo = (int) $bar; $foo = ( int ) $bar;
字元串轉化
當一個字元串被當作數字型的值來計算時,他的結果和類型如下麵所述的決定。 如果這個字元串含有字元’.’,’e’,或者’E’,則被當作雙精度類型變數來處理,否則當作是整數。 這個字元串的值由詞首部分決定。如果這個字元串以任何有效的數字的數據開始,那麼這個數字數據就是這個字元串參加運算的值。否則,值為零(zero)。有 效的數字數據是遵循下麵的這些標記的,跟隨在一個或多個數字後面(可以包含小數點),跟隨在一個可選的指數後面。指數是由一個或多個數字跟在’e’或 ’E’後面構成的。
PHP代碼
代碼如下 複製代碼
$foo = 1 + "10.5"; // $foo 是雙精度數 (11.5)
$foo = 1 + "-1.3e3"; // $foo 是雙精度數(-1299)
$foo = 1 + "bob-1.3e3"; // $foo 是整數 (1)
$foo = 1 + "bob3"; // $foo 是整數 (1)
$foo = 1 + "10 Small Pigs"; // $foo 是整數 (11)
$foo = 1 + "10 Little Piggies"; // $foo 是整數 (11);
// 這個字元串包括字元'e'
標識符
操作符:
1)賦值操作符:=
2)算術操作符:+,-,*,/,%(取模)
3)連接操作符:. ,無論操作數是什麼,都當成String,結果返回String
4)合計賦值操作符(Combined Assignment Operators):+=,*=,/=,-=,%=,.=
5)自動增減操作符(Automatically Incrementing and Decrementing):
(1)$variable+=1 ⇔$variable++;$variable-=1 ⇔$variable-,跟c語言一樣,先做其他操作,後++或-
(2)++$variable,-$variable,先++或-,再做其他操作
6)比較操作符:
= =(左邊等於右邊),!=(左邊不等於右邊),
= = =(左邊等於右邊,且數據類型相同),
>=,>,<,<=
7)邏輯操作符:|| or,&& and,xor(當左右兩邊有且只有一個是true,返回true),!
一個參考表
運算符(Arithmetic Operators) Operator
符號 Description
描述 Example
案例 Result
結果
+ Addition
加號 x=2
x+2 4
- Subtraction
減號 x=2
5-x 3
* Multiplication
乘號 x=4
x*5 20
/ Division
除號 15/5
5/2 3
2.5
% Modulus (division remainder)
求模(餘數) 5%2
10%8
10%2 1
2
0
++ Increment
自加 x=5
x++ x=6
-- Decrement
自減 x=5
x-- x=4
Assignment Operators
分配符(Assignment Operators)
Operator
符號 Example
案例 Is The Same As
等同於
= x=y x=y
+= x+=y x=x+y
-= x-=y x=x-y
*= x*=y x=x*y
/= x/=y x=x/y
%= x%=y x=x%y
Comparison Operators
比較符(Comparison Operators)
Operator
符號 Description
具體描述 Example
案例
== is equal to
等於 5==8 返回 false
!= is not equal
不等於 5!=8 返回 true
> is greater than
大於 5>8 返回 false
< is less than
小於 5<8 返回 true
>= is greater than or equal to
大於等於 5>=8 返回 false
<= is less than or equal to
小於等於 5<=8 返回 true
Logical Operators
邏輯判斷符(Logical Operators)
Operator
符號 Description
描述 Example
案例
&& and
與 x=6
y=3
(x < 10 && y > 1) 返回 true
|| or
或 x=6
y=3
(x==5 || y==5) 返回 false
! not
非 x=6
y=3
!(x==y)返回true
其他操作符:
三元操作符、錯誤抑制操作符、執行操作符、數組操作符、類型操作符
運算符"?"前的表達式
如果一個包含二元運算符的表達式出現在三元運算符" ? : "的"?"之前,那麼應該給表達式添上一對圓括弧。例如:
(x >= 0) ? x : -x;
下麵我們來看一個簡單的?號表達式實例
代碼如下 複製代碼
<?
$a='http://www.zhutiai.com/zhuti/c7/';
echo $a?'true':'false';
輸出結果為 trur;
再看
if( $a )
{
echo 'true';
}
else
{
echo 'false';
}