PHP資料型別
PHP支持八種原始的資料型別:

布爾型
/*
* boolean:TRUE FALSE
* 以下值被認為是FALSE:
* 布林值FALSE本身
* 整型值0(零)
* 浮點型0.0(零)
* 空字串,以及字串"0"
* 不包含任何元素的陣列
* 特殊型別NULL(包括尚未賦值的變數)
* ---所有其他值都被認為是TRUE
*/
$foo = true;
echo "foo的值是:$foo"."\n";
if ($foo){
echo "foo是真值"."\n";
}
else{
echo "foo是假值"."\n";
}
整型
/*
* Integer 整型,可以十進制、十六進制(0x)、八進制(0)、二進制(0b)
* php不支持無符號整數,即php中的整數都是有符號的,最大的整數為PHP_INT_MAX
* 注:如果給定一個數超出了integer的范圍,將會被解釋成float,同樣如果執行的運算結果超出了integer范圍,也會回傳float
*/
//PHP中沒有整除運算子,1/2會產生float 0.5,
echo 1/2;
echo "\n";
echo (integer)(1/2); //integer強制轉換為整型(去尾法)
echo "\n";
echo round(1/2); //round()四舍五入
echo "\n";
//當從浮點型轉換成整數時,將向下取整數(去尾法)
echo (integer)0.8; //輸出:0
echo "\n";
浮點型
/*
* Float:浮點數
* 永遠不要直接比較兩個浮點數是否相等
* 要測驗浮點數是否相等,要使用一個僅比該數值大一丁點的最小誤差值,
*/
$a = 1.234;
$b = 1.235;
echo "\n";
字串
/*
* string:字串
* 一個string就是由一系列的字符組成,每個字符等同與一個位元組,
* string可以用4中方式表達:
* 單引號:單引號內的字串中的變數和特殊字符的轉義序列不會被替換,
* 雙引號:會對變數和轉義字符進行替換,
* heredoc結構:
* nowdoc結構
*
* 字串細節:
* 一個字串就是由一系列的字符組成,因此:
* 一個字母 占一個位元組
* 一個數字 占一個位元組
* 漢字(gbk/gb2312) 占兩個位元組
* 漢字(utf-8) 占三個位元組
*/
//heredoc格式
/*
* 使用注意:
* 1. <<<固定 AAA名稱可以變化,一般來說全部大寫
* 2. <<<識別符號 后面不能帶任何內容,包括空格
* 3. 結束的識別符號前面不能有空格
* 4. heredoc可以決議變數和轉義字符
*/
$str = <<<AAA
FDSAJFKLDASJFKLD;AJF;DASJFK;DASKF\nJD;KLSAFJKDLS;ANFDSAJFLKDS;A
AAA;
echo $str;
陣列
/* Array:PHP中的陣列是一個有序映射,映射是一種把values關聯到keys的型別,
* -->array可以接受任意數量用逗號分割的健值對,
* PHP可以同時包含integer和string型別的鍵名,
* key:可以是一個整數integer或字串string,
* value:可以是任意型別的值,
*
* 1. 包含有合法整型值的字串會被轉換為整型(如"8"會被轉換為8,但是"08"不能轉換為8)
* 2. 浮點數會被轉換為整型,意味著小數部分會被舍去,
* 3. 布林值會被轉換為整型,
* 4. NULL會被轉換為空字串,即"",
* 5. 陣列和對應不能被用為鍵名,
*
* 如果陣列定義中多個單元都用了同一個鍵名,則只會使用最后一個,之前其他的都會被覆寫,
*/
echo "\n";
$arr1 = array(
"key1" => "value1",
"key2" => "value2"
);
var_dump($arr1);
echo "\n";
$arr2 = array(
1 => "a",
2.2 => "b",
true => "c" //會對之前key為1的進行覆寫
);
//echo $arr2; echo不能直接對陣列進行輸出
var_dump($arr2);
echo "\n";
//如果對給出的值沒有指定鍵名,則取當前最大的整數索引值,則新的鍵名將是該值+1,如果指定的鍵名已經有值,則該值會被覆寫,
//所以key為可選項,如果未指定,PHP將自動使用之前用過的最大的integer鍵名+1作為新鍵名,最小值為0,如果當前還沒有整數索引,鍵名為0
$arr2[] = 4;
var_dump($arr2);
echo "\n";
$arr3 = array(
"a", //鍵值為0
"b", //鍵值為1
6 => "c",
"d" //鍵值為7
);
var_dump($arr3);
echo "\n";
//訪問陣列:可以用array[key]語法訪問,也可以使用array{key}
$arr4 = array(
"key1" => "value1",
"key2" => "value2"
);
var_dump($arr4["key1"]);
echo "\n";
var_dump($arr4{"key1"});
echo "\n";
$arr5 = array(5 =>1, 4 => 2); //陣列的創建
var_dump($arr5);
echo "\n";
$arr5[] = 3; //添加一個新的key-value對
var_dump($arr5);
echo "\n";
$arr5["x"] = 5; //如果x存在,則覆寫value,如果不存在,添加
var_dump($arr5);
echo "\n";
unset($arr5[4]); //移除該鍵值對
var_dump($arr5);
echo "\n";
unset($arr5); //移除整個陣列
// var_dump($arr5);
echo "\n";
//注意:這里所使用的最大整數鍵名不一定就是當前陣列中,它只要在上次陣列重新生成索引后曾經存在過就行了,
$arr6 = array(1, 2, 3, 4, 5, 6);
print_r($arr6);
echo "\n";
foreach ($arr6 as $i => $value){ //遍歷陣列,移除所有元素
// echo $value;
// echo "<br/>";
unset($arr6[$i]);
}
print_r($arr6); //此時陣列為空
echo "\n";
$arr6[] = 9; //此時添加一個key-value(注意鍵名為6,不為0)
print_r($arr6);
echo "\n";
$arr6 = array_values($arr6); //重新索引
$arr6[] = 10; //此時key為1,上一個key為0
print_r($arr6);
echo "\n";
//unset()函式允許洗掉陣列中的某個鍵值對,但不會重新索引排序,如果需要洗掉后重建索引,可以用array_value()函式
//foreach as 控制結構專門用于陣列的,它提供了一個簡單的方法來遍歷陣列
//對于任意integer,float,string,boolean型別,如果將一個值轉換為只有一個元素的陣列(下標為0)
$var = "你好";
printf("%s", $var);
// var_dump(array($var));
echo "\n";
物件
/*
*Object:物件,要創建一個新的物件object,使用new陳述句實體化一個類,
*
*/
class Foo
{
function do_foo()
{
echo "doing foo.."."\n";
}
}
$bar = new Foo();
$bar -> do_foo();
資源和null
/*
* Resource資源型別:是一種特殊變數,保存了到外部資源的一個參考,
*
* NULL:表示一個變數沒有值,
* is_null():判斷一個變數是否為NULL,
* unset():移除,
* 一個變數被認為NULL三種情況:
* 被賦值為NULL,
* 尚未被賦值,
* 被unset(),
*
* mixed:說明一個引數可以接受多種不同的(但不一定是所有的)型別,
*
*/
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/69414.html
標籤:PHP
上一篇:php基礎
下一篇:php運算子
