PHP数组KEY强制转换问题

key 可以是 integer 或者 string。value 可以是任意类型。

此外 key 会有如下的强制转换:

  • 包含有合法整型值的字符串会被转换为整型。例如键名 "8" 实际会被储存为 8。但是 "08" 则不会强制转换,因为其不是一个合法的十进制数值。
  • 浮点数也会被转换为整型,意味着其小数部分会被舍去。例如键名 8.7 实际会被储存为 8
  • 布尔值也会被转换成整型。即键名 true 实际会被储存为 1 而键名 false 会被储存为 0
  • Null 会被转换为空字符串,即键名 null 实际会被储存为 ""
  • 数组和对象不能被用为键名。坚持这么做会导致警告:Illegal offset type

如果在数组定义中多个单元都使用了同一个键名,则只使用了最后一个,之前的都被覆盖了。

时间: 2024-10-09 01:55:37

PHP数组KEY强制转换问题的相关文章

php 对象强制转换成数组

$result=(array)$receive[0]; //对象强制转换成数组 foreach ($result as $key => $value) { $newresult[$key]=array((array)$value); } var_dump($newresult); exit();

Map集合中key不存在时使用toString()方法、valueOf()方法和强制转换((String))之间的区别

1.toString()方法 底层代码 public String toString() { return this; } 其返回值为String类型的字符串本身 1 Map<String, Object> params = new HashMap<String, Object>(); 2 //Map集合中没有key为1的键值对 3 String result = params.get("1").toString(); 4 if (result == null)

PHP类型转换&amp;&amp;类型强制转换

获取数据类型 : 如果想查看某个表达式的值和类型,用 var_dump(). 如果只是想得到一个易读懂的类型的表达方式用于调试,用 gettype(). 要查看某个类型,不要用 gettype(),而用 is_type() 函数. ■字符串转换为数值 当一个字符串被当作数字来求值时,根据以下规则来决定结果的类型和值. 如果包括“.”,“e”或“E”其中任何一个字符的话,字符串被当作 float 来求值.否则就被当作整数. 该值由字符串最前面的部分决定.如果字符串以合法的数字数据开始,就用该数字作

PHP强制转换类型

获取数据类型 : 1.如果想查看某个表达式的值和类型,用var_dump(). 2.如果只是想得到一个易读懂的类型的表达方式用于调试,用 gettype().3.要查看某个类型,不要用 gettype(),而用is_type() 函数. ■字符串转换为数值 当一个字符串被当作数字来求值时,根据以下规则来决定结果的类型和值. 如果包括“.”,“e”或“E”其中任何一个字符的话,字符串被当作 float 来求值.否则就被当作整数. 该值由字符串最前面的部分决定.如果字符串以合法的数字数据开始,就用该

【读书笔记】C#高级编程 第七章 运算符和类型强制转换

(一)运算符 类别 运算符 算术运算符 + - * / % 逻辑运算符 & | ^ ~ && || ! 字符串连接运算符 + 增量和减量运算符 ++ -- 移位运算符 << >> 比较运算符 == != < > <= >= 赋值运算符 = += -= *= /= %= &= |= ^= <<= >>= 成员访问运算符(用于对象和结构) . 索引运算符(用于数组和索引器) [] 类型转换运算符 () 条件

c#不同数组之间的转换【转载,消化自动删除】

c#中从string数组转换到int数组 string[] input = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };int[] output = Array.ConvertAll<string, int>(input, delegate(string s) {

“纯种Object对象”强制转换

这是个非常蛋疼的问题 场景,hibernate读取数据 @Override public List<Object> getRankList(Date stime, Date etime, int type, int num) { String hql = "select p.content, sum(p.count) from ProfileJudgeCount p " + " where p.type = :type and p.date between :st

Java数组与列表转换的java.lang.ClassCastException

Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.Integer; at com.bupt.acm.test.TestArrayList.main(TestArrayList.java:12) ava.lang.ClassCastException是进行强制类型转换的时候产生的异常,强制类型转换的前提是父类引用指向的对象的类

Php中的强制转换详解

强制转换中分为两种,第一种就只临时转换,和永久转换.在临时转换中呢,首先可以通过第一中方式来显示,就是小括号的形式,临时转换成整型我们可以通过(int)都是这样的形式,或者是(integer)临时转换成整型,再往下再来看,临时转成浮点类型可以通过(float)或者是(double)或者是(rea!)临时转换成浮点类型,第三个临时转换成布尔类型,可以通过(boolean)或者你可以试验一下(bool)缩写的形式,我们可以来尝试写上一个布尔类型,再往下呢还可以转换成字符串型.字符串型可以通过(str