Php字符串
大括号
字符串变量中大括号{}的作用:
PHP 变量后面加上一个大括号{},里面填上数字,就是指 PHP 变量相应序号对应的字符。
例如:
$str = 'hello';
echo $str{0}; // 输出为 h
echo $str{1}; // 输出为 e
如果要检查某个字符串是否满足多少长度,可以考虑用这种大括号{} 加 isset 的方式替代 strlen 函数,因为 isset 是语言结构,strlen 是函数,所以使用 isset 比使用 strlen 效率更高。
比如判断一个字符串的长度是否小于 5:
if ( !isset ( $str{5} ) ) 就比 if ( strlen ( $str ) < 5 ) 好。
引号
- 单引号,
- 内部的字符不转义,
- 因此变量$a, 不起作用
- 换行符\n都不起作用,
- 但是, 速度快.
- 双印号都转义, 代码中一般双引号比较多.
纯字符输出
echo $foo,$bar; //语言结构:) , 可以接受多个参数.
$x=print "xxxxx"; // 语言结构:), print是有返回值的, 成功输出就是true.
printf("%.02lf\n", 1.035); //函数,
vprintf("%04d-%02d-%02d", explode('-', '1988-8-1')); // 1988-08-01 函数啊.
关于echo
-
因为是一个语言构造器而不是一个函数,不能被 可变函数 调用。
-
拼接字符时, 多个参数是更好的选择.
# 相对 echo 中拼接字符串而言,传递多个参数比较好,考虑到了 PHP 中连接运算符(“.”)的优先级。 传入多个参数,不需要圆括号保证优先级: echo "Sum: ", 1 + 2; echo "Hello ", isset($name) ? $name : "John Doe", "!"; #如果是拼接的,相对于加号和三目元算符,连接运算符(“.”)具有更高优先级。为了正确性,必须使用圆括号: echo 'Sum: ' . (1 + 2); echo 'Hello ' . (isset($name) ? $name : 'John Doe') . '!';
-
快捷方式
I have <?=$foo?> foo.
-
花括号可以标出来变量的域
echo "This works: {$arr['key']}";//这么写才能正确识别: $arr['key']
对象输出
print_r(); //比较简略, 适合阅读. 不带数据类型.
var_dump(); //啥信息都有. 但是信息稍微多了一点.
dump(); // 这个最好, 但是, 在laravvel里面才有.
字符串就是数组
可以把 string 当成单字符组成的 array
string 中的字符可以通过一个从 0 开始的下标,用类似 array 结构中的方括号包含对应的数字来访问和修改,比如:
$str[42]。
#string 也可用花括号访问,比如
$str{42}。
-
函数 substr() 和 substr_replace() 可用于操作多于一个字符的情况。
$s='20160820'; $d=gmmktime(0,0,0,substr($s,4,2),substr($s,6,2),substr($s,0,4))/86400;//取出了, 月, 日, 年.substr(需要处理的串, 位置, 位数)