关于PHP字符与数组的疑义

WBOY
Release: 2016-06-13 13:00:21
Original
839 people have browsed it

关于PHP字符与数组的疑问
$str="123456";
var_dump($str["abc"]);

为什么结果是第一个字符而不是null 而且我unset($str["abc"])又提示没这个下标。
------解决方案--------------------
字符串不是数组,只有位置,没有下标和关联键
数组相关函数不能用于字符串

因此 $str["abc"] 中的 "abc" 被转换成数值 0
对于 $str="123456"; 而言 $str["abc"] 就是 $str[0],所以得到 1

虽然访问字符串的某个位置可以写作 $str[$i]
但是为防止歧义,php 建议你这么写 $str{$i}
------解决方案--------------------
手册 比较运算符 一节
------------------------------------------
var_dump(0 == "a"); // 0 == 0 -> true
var_dump("1" == "01"); // 1 == 1 -> true
var_dump("1" == "1e0"); // 1 == 1 -> true
switch ("a") {
case 0:
    echo "0";
    break;
case "a": // never reached because "a" is already matched with 0
    echo "a";
    break;
}
?> 
------------------------
switch那个例子就很明显了

字符串索引不能用“字符串”,但php把它“智能”地处理了变成0

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template