当前位置: 首页 > 编程笔记 >

PHP 类型转换

殷宇
2023-03-14
本文向大家介绍PHP 类型转换,包括了PHP 类型转换的使用技巧和注意事项,需要的朋友参考一下

示例

PHP通常会从使用的上下文中正确猜出您打算使用的数据类型,但是有时手动强制类型很有用。这可以通过在声明的前面加上括号中所需类型的名称来实现:

$bool = true;
var_dump($bool); // 布尔值(true)

$int = (int) true;
var_dump($int); // 整数(1)

$string = (string) true;
var_dump($string); // string(1) "1"
$string = (string) false;
var_dump($string); // string(0) ""

$float = (float) true;
var_dump($float); // 浮动(1)

$array = ['x' => 'y'];
var_dump((object) $array); // object(stdClass)#1 (1) { ["x"]=> string(1) "y" } 

$object = new stdClass();
$object->x = 'y';
var_dump((array) $object); // array(1) { ["x"]=> string(1) "y" }

$string = "asdf";
var_dump((unset)$string); // 空值

但请注意:并非所有类型强制转换都能像人们期望的那样工作:

// 对于32位系统,以下3条语句有效(PHP_INT_MAX = 2147483647)
// 大于PHP_INT_MAX的整数值将自动转换为float:
var_dump(       999888777666 ); // 浮动(999888777666)
// 强制(int)会产生溢出:
var_dump((int)  999888777666 ); // 整数(-838602302)
// 但是在字符串中它只返回PHP_INT_MAX
var_dump((int) "999888777666"); // 整数(2147483647)

var_dump((bool) []);      // bool(false)(空数组)
var_dump((bool) [false]); // 布尔值(true)  (non-empty array)
           

 类似资料:
  • 上面的代码是,我从容器里面实例化的一个类,AdminService,invoke返回的是一个mixed任意类型,这样我就出现了一个问题了。 如果我不写@var 标注,我的编辑器就无法识别这个$adminService 实例下的方法了。 请问如何将$adminService 转换成AdminServcie 类型!

  • 本文向大家介绍浅谈PHP中其他类型转化为Bool类型,包括了浅谈PHP中其他类型转化为Bool类型的使用技巧和注意事项,需要的朋友参考一下 问题起由:PHP中if(true==2)会返回true还是false? 结果是返回true,顺着这个问题,我把php其他数据类型也测试一下。 结论: 转化为bool类型时,会变成false的几种数据: 1.整型0 2.空字符串 3.空数组 4.NULL 欢迎补

  • 类型推导引擎是相当智能的。它不仅仅在初始化期间分析右值的类型,还会通过分析变量在后面是 怎么使用的来推导该变量的类型。这里给出一个类型推导的高级例子: fn main() { // 借助类型标注,编译器知道 `elem` 具有 u8 类型。 let elem = 5u8; // 创建一个空 vector(可增长数组)。 let mut vec = Vec::new(

  • Rust 在基本类型之间没有提供隐式类型转换(强制类型转换)(implicit type conversion,coercion )。不过使用 as 关键字进行显式类型转换(explict type conversion,casting)。 一般来说,Rust 的整型类型的转换规则遵循 C 语言的惯例,除了那些在 C 语言是未定义行为的情况。在 Rust 中,所有的整型类型转换的行为都得到了很好的

  • 类型转换可以判断实例的类型,也可以将该实例在其所在的类层次中视为其父类或子类的实例。 Swift 中类型转换的实现为 is 和 as 操作符。这两个操作符使用了一种简单传神的方式来检查一个值的类型或将某个值转换为另一种类型。 如同协议实现的检查(此处应有链接)中描述的那样,你还可以使用类型转换来检查类型是否遵循某个协议。 为类型转换定义类层次 你可以在类及其子类层次中使用类型转换来判断特定类实例的

  • String可以与整型和浮点型互相转换。 整形 String转Int String s("1234"); long value = s.toInt(); Int转String String s(1234); 浮点型 String转Float String s("1234.56"); double value = s.toFloat(); Float转String String s(1234.