首頁 >後端開發 >PHP問題 >php怎麼強制轉成字串

php怎麼強制轉成字串

藏色散人
藏色散人原創
2021-03-15 09:13:413892瀏覽

php強制轉成字串的方法:先建立一個PHP範例檔案;然後定義一個變數;最後透過PHP中的string方法強制轉換成字串即可。

php怎麼強制轉成字串

本文操作環境:windows7系統、PHP7.1版,DELL G3電腦

PHP強制轉換類型 

#取得資料型態:

1.如果想查看某個運算式的值和型別,用var_dump()。 
2.如果只是想得到一個容易理解的類型的表達方式用於調試,用 gettype()。
3.要查看某個類型,不要用 gettype(),而用is_type() 函數。

 ■字串轉換為數值

  1. #當字串當作數字來求值時,依照下列規則來決定結果的類型和值。
  2. 如果包括“.”,“e”或“E”其中任何一個字元的話,字串被當作 float 來求值。否則就被當作整數。
  3. 該值由字串最前面的部分決定。如果字串以合法的數字資料開始,就用該數字作為其值,否則其值為 0(零)。合法數字資料由可選的正負號開始,後面跟著一個或多個數字(可選地包括十進制分數),後面跟著可選的指數。指數是一個“e”或“E”後面跟著一個或多個數字。

註:不要指望在將一個字元轉換成整數時能夠得到該字元的編碼(可能也會在 C 中這麼做)。如果希望在字元編碼和字元之間轉換,請使用 ord() 和 chr() 函數。

■強制型別強制轉換 

#PHP 中的型別強制轉換與C 中的非常像:在要轉換的變數之前加上用括號括起來的目標類型。

允許的強制轉換有:

    ##(int),(integer)            - 轉換為整數
  • (bool),(boolean    轉換成布林類型
  • (float),(double),(real)    - 轉換為浮點類型
  • (string)              - 轉換成陣列
  • (object)                   - 轉換成物件
  • #注意在括號內允許使用空格和製表符
  • ##settype
settype#settype#settype#22也可以用表##" ( mixed var, string type )強制轉換.


1.強制轉換為布林值(bool)|(boolean)

要明確地將一個值轉換成boolean,用(bool ) 或(boolean) 來強制轉換。但是很多情況下不需要用強制轉換,因為當運算符,函數或流程控制需要一個 boolean 參數時,該值會被自動轉換。

當轉換為boolean 時,以下值被認為是FALSE: 

布林值FALSE

整數值0(零)

浮點型值0.0(零)
空白字串和字串"0" 
沒有成員變數的陣列
沒有單元的物件(僅適用於PHP 4)
特殊類型NULL(包括尚未設定的變數)
所有其它值都被認為是TRUE(包括任何資源)。

<?php
var_dump((bool) ""); // bool(false)
var_dump((bool) 1); // bool(true)
var_dump((bool) -2); // bool(true)
var_dump((bool) "foo"); // bool(true)
var_dump((bool) 2.3e5); // bool(true)
var_dump((bool) array(12)); // bool(true)
var_dump((bool) array()); // bool(false)
var_dump((bool) "false"); // bool(true)
?>

2.強制轉換為整形(int)|(integer)

要明示地將一個值轉換為 integer,強制轉換為 (int) 或 (integer) 轉換。不過大多數情況下都不需要強制轉換,因為當運算符,函數或流程控制需要一個 integer 參數時,值會自動轉換。也可以透過函數 intval() 來將一個值轉換成整數型。

a.從bool轉換

b.從浮點數轉換     取整,超出範圍,結果不定

c.從字串轉換     參考字串轉換為數值

d.從其它型別轉換   先換成bool值,再轉換

絕對不要將未知的分數強制轉換為 integer,有時會導致意外的結果。

<?php
echo (int) ( (0.1+0.7) * 10 ); // 显示 7
?>
$str = "123.456abc7"; // (int)123
echo (int)$str;
$str = "abc123.456";   // (int)0
$str = true;           // (int)1
$str = false;          // (int)0

    3.强制转换为浮点型 (int)|(double)|(real)|doubleval()|floatval()|intval() 
精度: 0.12345678901234 // double,real都一样
数据的丢失参 字符串转换为数值
【推荐学习:《PHP视频教程》】    
    4.强制换为字符串 (string) |strval()
可以用 (string) 标记或者 strval() 函数将一个值转换为字符串。当某表达式需要字符串时,字符串的转换会在表达式范围内自动完成。例如当使用 echo() 或者 print() 函数时,或者将一个变量值与一个字符串进行比较的时候。

  • 布尔值 TRUE 将被转换为字符串 "1",而值 FALSE 将被表示为 ""(即空字符串)。这样就可以随意地在布尔值和字符串之间进行比较。
  • 整数或浮点数数值在转换成字符串时,字符串由表示这些数值的数字字符组成(浮点数还包含有指数部分)。
  • 数组将被转换成字符串 "Array",因此无法通过 echo() 或者 print() 函数来输出数组的内容。请参考下文以获取更多提示。
  • 对象将被转换成字符串 "Object"。如果因为调试需要,需要将对象的成员变量打印出来,请阅读下文。如果希望得到该对象所依附的类的名称,请使用函数 get_class()。自 PHP 5 起,如果合适可以用 __toString() 方法。
  • 资源类型总是以 "Resource id #1" 的格式被转换成字符串,其中 1 是 PHP 在运行时给资源指定的唯一标识。如果希望获取资源的类型,请使用函数 get_resource_type()。
  • NULL 将被转换成空字符串。

正如以上所示,将数组、对象或者资源打印出来,并不能提供任何关于这些值本身的有用的信息。请参阅函数 print_r() 和 var_dump(),对于调试来说,这些是更好的打印值的方法。 
可以将 PHP 的值转换为字符串以永久地储存它们。这种方法被称为序列化,可以用函数 serialize() 来完成该操作。如果在安装 PHP 时建立了 WDDX 支持,还可以将 PHP 的值序列化为 XML 结构。 
    4. 强制转换为数组 (array)

  • 对于任何的类型:整型、浮点、字符串、布尔和资源,如果将一个值转换为数组,将得到一个仅有一个元素的数组(其下标为 0),该元素即为此标量的值。
  • 如果将一个对象转换成一个数组,所得到的数组的元素为该对象的属性(成员变量),其键名为成员变量名。
  • 如果将一个 <span style="font-family: NSimsun">NULL</span> 值转换成数组,将得到一个空数组。

         5. 转换为对象 (object)
如果将一个对象转换成对象,它将不会有任何变化。如果其它任何类型的值被转换成对象,内置类 stdClass 的一个实例将被建立。如果该值为 NULL,则新的实例为空。数组转换成对象将使键名成为属性名并具有相对应的值。对于任何其它的值,名为 scalar 的成员变量将包含该值
    6. 转换为资源 (无法转换)
由于资源类型变量保存有为打开文件、数据库连接、图形画布区域等的特殊句柄,因此无法将其它类型的值转换为资源。
■PHP 类型比较表
以下的表格显示了 PHP 类型和比较运算符在松散和严格比较时的作用。该补充材料还和类型戏法的相关章节内容有关。

  • 注意
  • HTML 表单并不传递整数、浮点数或者布尔值,它们只传递字符串。要想检测一个字符串是不是数字,可以使用 is_numeric() 函数。
  • 在没有定义变量 $x 的时候,诸如 if ($x) 的用法会导致一个 E_NOTICE 级别的错误。所以,可以考虑用 empty 

 

以上是php怎麼強制轉成字串的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn