php資料類型之間轉碼

來源:互聯網
上載者:User

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轉Null 字元串"",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代碼複製內容到剪貼簿

<?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");
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.