PHP STRING 陷阱
来源:互联网 发布:淘宝怎样做才有订单 编辑:程序博客网 时间:2024/05/22 07:47
A string is series of characters.
String access and modification by character
Characters within strings may be accessed and modified by specifying the zero-based offset of the desired character after the string using square array brackets, as in $str[42]. Think of a string as an array of characters for this purpose.
Note: Strings may also be accessed using braces, as in $str{42}, for the same purpose. However, this syntax is deprecated as of PHP 5.3.0. Use square brackets instead, such as $str[42].
Writing to an out of range offset pads the string with spaces. Non-integer types are converted to integer. Illegal offset type emits E_NOTICE. Negative offset emits E_NOTICE in write but reads empty string. Only the first character of an assigned string is used. Assigning empty string assigns NUL byte.
以上都是 php manual 中的原话。
需要注意的时候,我们访问数组的时候 都是使用方括号“[]”,string作为一个也可以使用操作符“[]”进行访问。但是,需要注意的一点就是,访问字符串时候,操作符“[]”中的内容会被转化为int类型的。
eg: $str ='123456';
echo $str['php'];//结果是1,因为offset ‘php’转化为integer为0,既是访问的是字符串的第一个字符.
var_dump(isset($str['php']));//结果是bool(true) 原理同上。
所以,在我们使用isset判断一个设置是否存在某个键时候,应该先判断试下,传递过来的变量是否是数组,然后再判断是否是存在指定的key
eg://如果需要判断传递过来的数组是否存在'php'这个key时候,比较安全的做法为:
function is_set($arr, $key){
if (is_array($arr) && isset($arr[$key])) {
//存在该值的逻辑
} else{
//$arr不是数组 或者 数组$arr不存在key $key的逻辑
}
}
如果 上面的函数 没有添加 is_array 的判断,当传递一个 字符串过来的时候, 结果就不是我们预想的那样了。
仅此为记,以免以后也出现类似的问题。
- PHP STRING 陷阱
- string.split的陷阱
- String字符串拼接陷阱
- String.split的陷阱
- string 内存陷阱
- php 陷阱笔记
- php session陷阱
- 1.PHP数据库陷阱
- PHP总结:几个陷阱
- PHP运算符陷阱
- PHP的陷阱
- php 中的陷阱
- Java byte[] 转 String 陷阱
- php的crc32的陷阱
- php多文件上传陷阱
- PHP mysql_real_escape_string的使用陷阱
- char[] 转String时的陷阱
- C++ string中的几个小陷阱
- 一位软件工程师的6年总结【转】
- 【转】14条最佳JavaScript代码编写技巧
- android 4.0以上无法收到开机广播
- 【设计模式之禅】之 六大设计原则
- (转载)JSON教程
- PHP STRING 陷阱
- PHP IN_ARRAY 函数 使用需要注意的地方
- PHP array 的 加法操作
- PHP manual 之 boolean类型
- php伪静态
- DragonBones导出骨骼动画供cocos2d-x使用
- 正则表达式测试工具RegexTester(code architects regex tester)
- PHP 作用域解析运算符(::)
- PHP 中的integer 类型