大括号

字符串变量中大括号{}的作用:

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 ) 

引号

  1. 单引号,
    1. 内部的字符不转义,
    2. 因此变量$a, 不起作用
    3. 换行符\n都不起作用,
    4. 但是, 速度快.
  2. 双印号都转义, 代码中一般双引号比较多.

纯字符输出

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

  1. 因为是一个语言构造器而不是一个函数,不能被 可变函数 调用。

  2. 拼接字符时, 多个参数是更好的选择.

    # 相对 echo 中拼接字符串而言,传递多个参数比较好,考虑到了 PHP 中连接运算符(“.”)的优先级。 传入多个参数,不需要圆括号保证优先级:
    echo "Sum: ", 1 + 2;
    echo "Hello ", isset($name) ? $name : "John Doe", "!";
    #如果是拼接的,相对于加号和三目元算符,连接运算符(“.”)具有更高优先级。为了正确性,必须使用圆括号:
    echo 'Sum: ' . (1 + 2);
    echo 'Hello ' . (isset($name) ? $name : 'John Doe') . '!';
    
  3. 快捷方式

    I have <?=$foo?> foo.
    
  4. 花括号可以标出来变量的域

    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(需要处理的串, 位置, 位数)