php中數據類型有整型、小數型(浮動數)、布爾類型、字符及數組,變量,常量等下面我們一起來看看吧。
一 PHP常用數據類型
1.基本數據類型
1.1整型
1.2小數型(浮動數) 包含單精度和雙精度
1.3布爾類型 (表示真,和 假)
1.4字符串
2.復合數據類型
2.1數組(array)
2.2對象 (object)
3.特殊數據類型
3.1null
3.2資源類型(resource)
二 PHP的基本語法
1.PHP 定義變量必需以 $ 這個符號開頭,區分大小寫。
2.變量的名稱,應當以字母或者下劃線開頭,不要用數字開頭,也不要用特殊字符開頭。
第一個PHP程序
代碼如下 復制代碼 <?php1 注釋
1.1多行
/*
xxxx
*/
1.2單行
//xxxxx
2.賦值
$a = 'test';
2.1 檢查變量是否已聲明
isset($a)
2.2 釋放變量
unset($a);
2.3 靜態變量
static $a;
靜態變量可在一個函數幾次調用中保持數值,而不會被系統釋放,但只能在聲明它的函數集中訪問到,只能在第一次聲明時初始化。
3. 基本類型
3.1 數字類型
3.1.1整數(integer,關鍵字int)
.整數可用8進制 10進制 16進制 表示
$a=123; //10進制
$b=0123; //8進制
$c=0x123; //16進制
.由於操作系統不同整數精度變化很大,但32位是最常見的
3.1.2浮點(float,關鍵字float,64位浮點數,精度14位)
.PHP中float和double是等同的
.使用浮點數切記:他們只是近似值
如:2.5在內部常被表示為2.499999999
又如:
if(0.7+0.1>=0.8){
echo 'a';
}else{
echo 'b';
}
返回值為b,這取決於浮點數的確切實現方式,推薦做法是避免使用浮點值做比較
3.2 字符串
.用單引號或雙引號包圍
如:echo "Hello"; echo 'Hello';
.雙引號中的變量會被解釋,單引號中的則不會
如:var $name = 'jano';
echo "my name is $name.";//顯示 my name is jano
echo 'my name is $name'; //顯示 my name is $name
.雙引號中的變量可用{}包圍來區分變量和後面的字母
如:var $n = "my name is {$name}Yu";//如果沒有{}就無法區分變量和字符
.heredoc
$a = <<< HTM
skjdfjsd
lksdfjsdlf
HTML; //後面的表示必須頂在最前面
.獲取字符串中的某個字符
$a = 'Hello';
echo $a{1}; // 顯示e
echo $a[1]; // 顯示e
推薦使用第一種寫法可以和數組區分開
3.3 布爾值
true false
4.常用函數
. nl2br 吧字符串中的換行符轉化成<br />
如:echo nl2br($a);
.var_dump
顯示變量類型和值,如:var_dump($a);
.print_r
var_dump加強版,打印對象類型和內容,數組則打出所有元素,類對象則打印所有成員
如:$a = array(1,2,3,4,5);
print_r($a);
5.數組
數組用array方法聲明
例:
$a = array('a','b','c');
$a = array('a','b',array(1,2,3));
.默認從索引0開始賦值
如:$a[]='a'; //$a[0]='a';
$a[]='b'; //$a[1]='b';
.使用字符串值做索引
如:
$a = array('car'=>'Ferrari','Number'=>21,'City'=>'CQ');
echo $a['car'];
.遍歷並更改數組元素值
foreach($array as $key=>&$value){// &$value
//...
}
6.特殊類型和值
.NULL 區分大小寫,表示無值,從沒賦值,用unset清除
.資源
7.強制類型轉換
(int)$a
(float)$a
(string)$a
(bool)$a
(array)$a
(object)$a
.特殊的
(int)"0123";//返回123,沒有把8進制0123轉換為10進制數字
(int)"123 mu tou ren";//返回123
(int)"mu tou ren 123";//返回0,因為轉換只從第一個字符開始讀,發現非數字立即停止
.轉換為布爾值
非空非零則為true(包括正數和負數),0為false
包含0個元素的數組為false
NULL為false
轉換為整數
.浮點轉換為整型
小數點後的數字捨棄,如果超過證書有效位,結果可能是0或者最小負數
.布爾轉換為整型
true為1
false為0
.字符串轉換為整型
對字符串左側第一位進行判斷。如果第一位是數字,則會從第一位開始將讀取到數字轉換成整數。如果第一位不是數字結果為0.
.PHP沒有提供其他類型轉換為整數的方法
轉換為浮點數
.整數轉換為浮點數
結果不變
.布爾轉換為浮點數
true為1
false為0
.字符串轉換成浮點數
與整數類似
.PHP沒有提供其他類型轉換為浮點數的方法
轉換為字符串
將非字符串轉換為字符串的方法是在變量前使用“(string)”強制轉換。
規則如下:
1.整型或浮點型:結果為其值
2.布爾型:true轉換為'1' , false轉換為空字符串
3.對象或數組:如果被轉換的變量是對象或數組,則轉換結果將為字符串對象或字符串數組,需要根據實際情況進行分析。
4.資源類型:返回資源標識號
8.類型判斷與獲取
.轉換成數組
在變量前用“(array)”強制轉換。將變量轉換成員變量數據類型相同的數組,數組中只有一個元素。
如:
$a=1;
print_r((array)$a);
結果:
Array
(
[0]=> 1
)
.轉換為對象
在變量前用“(object)”強制轉換。將生成一個新對象,其中名為scalar的成員變量將包含原變量的值。如:
$a=1;
$o = (object)$a;
echo $o->scalar;
使用函數進行數據轉換
bool settype(var, string type)
type值: boolean,integer,float,string,array,object,null
.判斷類型函數
is_integer 如:is_integer($a); //返回true或false
is_float
is_double
is_real
is_int
is_long
is_numeric
is_string
is_bool
is_array
is_object
is_null
is_resource
is_scalar 是否為一個標量
.類型獲取
gettype($a);
9.變量和常量
.常量
define('NUM_USR','0');
$u = NUM_USR;
.引用
$a=0;
$b = &$a;
$b++;
echo $a;//顯示1,因為$b是$a的引用,$b改變就表示$a改變
10.操作符
10.1 數學操作符
+ - * / %(取余)
10.2 比較運算符
==
=== 值相同,類型相同
!=
<> 和!=一樣都是不等於
!== 值相同,類型不同
<
>
<=
>=
10.3 邏輯運算符
and && 與
or || 或
xor 異或,若一個為true,但不是兩個都為true,則結果為true
! 非
10.4 按位操作
& 按位與
| 按位或
^ 按位異或
~ 按位非
<< 左移位
>> 右移位
10.5 三元操作符
表示問號前面的表達式是否為true,是則返回冒號前面的值,不是則返回冒號後面的值
如:
$c = $a > $b ? 1:2;
echo $a>$b ? "hello":"no";
.下面兩個語句是等價的
$a = ($b != 'china') ? true : false;
$a = $b != 'china';
10.6 其他操作符
++ 自增
-- 自減
@ 忽略特定函數的調用失敗報錯,如:$u=@file(xxx);
. 字符串連接操作,如:$a = 'hello'.'world'; $a = 'hello'.$a;
11.7 特殊的邏輯運算符表達式
$a = 0;
$b = 100;
echo $a || $b;//$a轉換為bool值為true時,echo $a,否則echo $b,不管$b表達式是否為true,此表達式會始終顯示100
echo $a && $b;//將什麼都不顯示,因為整個表達式$a && $b返回false
$a = 1;
$b = 0;
echo $a && $b;//將什麼都不顯示,因為整個表達式$a && $b返回false
echo $a && $b;//始終顯示$a
$a = 1;
$b = 0;
$a && $b=12;
echo $b;//顯示12,$a是否為true,為true就會執行$b=12,系統首先讀取&&,知道這是個與,於是開始執行&&前面的語句,發現返回true就再 執行&&後面的語句,發現返回false就不會再執行&&後面的語句了,因為&&邏輯,只要有一個false 整個表達式就變成false