1、PHP字符串轉換
數值轉字符串就是按照數值原本的格式轉換;字符串轉換為數字,轉換后的數字是從字符串開始部分的數值型字符串,數值型字符串包括正負值和用科學計數法表示的數字。
- <?php
- $number=intval("5.6abc"); //5
- $number=(float)"+5.6abc"; //5.6
- $number=floatval("-1.2e3f4g5"); //-1.2e3
- $result="12.3xy45"-6; //6.3
- $result="xy1234"/5; //0
- $result="1.2.3.4"*5; //6
- $result=1+"-1.3e3"; //-1299
- ?>
•布爾類型轉字符串,false轉空字符串"",true轉"1"
•數組轉字符串,是"Array"
•對象轉字符串,是"Object"
•資源轉字符串,是"Resource id#1"
2、PHP布爾型
以下類型轉換為布爾類型的false,其他的轉換為true
0轉換為false,0.0轉換為false,空白字符""和字符串"0"轉換為false,沒有成員的數組array()轉換為false,NULL轉換為false
3、PHP數字(整形和浮點型之間可以相互轉化)
•整形轉換為浮點型:由于浮點型的精度范圍遠大于整形,所以轉換后的數值精度不會改變。
•浮點型轉換為整形:講自動舍棄小樹部分,只保留整數部分。注:如果一個浮點型超過整數取值的有效范圍,其結果將是無法確定的(整數的最大值約是2.147e9)。
- <?php
- $real_num=3.1e9;
- echo $real_num;
- echo (int)$real_num; //輸出一個不確定的值,因為溢出的部分已經丟失
- ?>
4、PHP數組
布爾、數字和字符串轉換為數組,將得到一個包含一個該類型數據元素的數組
•NULL轉換為數組,會得到一個空數組
•對象轉換為一個數組,所得到的數組鍵名為對象屬性名,值為對應對象屬性的值
數據類型之間相互轉換
一種是強制轉換
setType(變量,類型); //int,integer,float,double等等。
這個函數將原變量的類型改變,用var_dump();可以查看變量在賦值前使用(類型)的形式,不會改變原變量的類型
$a=(int)"123abc";
$變量=intval(變量或值);
$變量=floatval(變量或值);
$變量=stringval(變量或值);
注意:整型在內存中占4個字節 2.147e9
浮點型在內存中占8個字節
一種是自動轉換(最常用方式),變量會更具運行環境自動轉換,與變量和類型有關的一些常用函數:
isset();//判斷一個變量是否存在,值如果是null也表示空。
empty();//判斷一個變量是否為空 "",null
unset();//刪除一個變量
setType();//設置一個變量類型
getType();//獲取一個變量類型 var_dump();獲取類型和值
變量類型測試函數
is_bool();//判斷是否為布爾型
is_int() is_integer() is_long()//判斷是否是整型
is_float(), is_double() is_real()//...
is_array()
is_object()
is_resource()
is_null()
is_scalar()//判斷是否是標量
is_numberic()//判斷是否是任何一種數字,或數字字符串
is_callable()//判斷是否是有效的函數名
常量的聲明與使用
1.常量是一個簡單值的標識符
2.常量定義后不能再改變它的值,也不能使用unset()或其他的函數取消
3.常量可以不用理會變量范圍的規則而在任何地方都可以定義和訪問
4.常量使用define("常量名",值);
5.常量名在聲明和使用時都不使用"$"
6.常量名稱習慣都使用大寫
7.常量的值只能用標量類型(int,float,bool,string)
8.常量一定要在聲明時就給值
9.defined("常量");//判斷常量是否存在
預定義常量和魔術常量
echo __FILE__;//輸出當前文件名稱目錄_魔術常量
echo CASE_LOWER;//輸出固定的值_預定義常量
- //這個函數將原變量的類型改變,用var_dump();可以查看變量
- $str="100.12345abc";
- setType($str,int);
- var_dump($str);
- //在賦值前使用(類型)的形式
- $str="100.12345abc";
- $a=(int)$str;
- var_dump($a);//輸出int(100)
- var_dump($str);//輸出值不變,"100.12345abc"
- //如果字符串不是以數字開頭,則轉換成0
- //不同類型運算
- $a=10;
- $b="100abc";
- $c=true;
- $d=12.34;
- $sum=$a+$c;//布爾型自動轉換成1,結果為11
- $sum=$a+$b;//結果為110
- $sum=$a+$b+$c;//結果為111
- $sum=$a+$b+$c+$d;//結果為123.34,因為浮點型內存空間大,小內存轉大內存。
- //判斷是否是數組
- $a=array("one","two",1,3,6,8);
- if(is_array($a)){
- print_r($a);//打印數組
- }else{
- echo $a;
- }
- //定義常量,使用常量
- define("home","this is a home");
- $a=100;
- function demo()
- {
- global $a;//因為$a是全局變量所以要用全局標記調用
- echo $a;
- echo home;//常量可以不用理會范圍,直接訪問或者定義
- }
- demo();
- //判斷常量是否存在
- if(defined("home")
- {
- echo home;
- }
- else
- {
- define("home","this is a home");
- }
新聞熱點
疑難解答