PHP 字符串操作

碎碎念

记录一些PHP中字符串的学习记录。

双引号和单引号的区别

  1. 双引号可以用来解析变量,单引号不解析变量。所以,如果纯输出字符串,单引号的效率会高一些;
  2. 双引号会解析内部所有的转义符,单引号则仅仅解析\\\'

花括号的运用

  • 划分变量的界限
    PHP在解析到$时会尽可能多的标识来解析一个变量,可以用大括号把变量括起来可以让变量成为一个整体,明确变量名的界限,后面还可以加其它字符串,避免解析错误。注意,花括号之间不能有空格。
  • 字符串增删改查
    需要注意:
  1. 字符串下标从0开始
  2. 也可以用[]达到同样的效果
  3. 只能用一个字符修改一个字符,$str{1}='hello'只能取字符h
  4. 不适合使用中文这种多字节编码的语言

heredoc/nowdoc

当有大段内容时可以采用EOF大段内容的写法。如果字符串中需要解析变量,可以使用heredoc,否则使用nowdoc。
heredoc相当于双引号的功能,可以解析变量,语法如下:

需要注意:

  1. 结束符前面不能有任何内容,制表符空格都不行;
  2. 标示名只能包含字母,数字,下划线,必须以字母,下划线开始;
  3. 内部内容不用考虑单双引号;
  4. PHP5.3后标示符名称可以用双引号扩起来;

nowdoc只是把标示符名称放在单引号内,不解析变量和转义符。


PHP 字符串操作_第1张图片
截屏2020-01-13下午1.09.59.png

字符串类型转换

  1. 数值echo后还是数值本身
  2. 布尔值echo后,true转换为1,false转换为空字符串
  3. null也转换为空字符串
  4. echo array(1,2,3,4,5);,返回字符串的Array
  5. 资源转换,$handle=fopen('str.text', 'r'); var_dump($handle),返回 resource of type(stream),此时直接echo资源则返回Resource id #3
  6. 对象不能直接转换为字符串,会包致命错误
强制转换
  • 临时转换
    即不改变原变量的类型, (string)strval()

同样的,布尔类型会转换成变量"1";false会转换成""

  • 永久转换
    settype()gettype()
$var='gaohang';
$var1=123;
echo gettype($val); // string
echo gettype($var1); // integer
settype($varq,'string');
  • 数字与字符串相加规律
PHP 字符串操作_第2张图片
字符串转换规律

如图,如果数字遇到完全的字符串,则字符串为0,若字符串首位为合法数字,则取首位的数字。

  • string转换为布尔类型
    有以下几种情况会被转换为false,大致可以记忆为字符串或字符串的0:
  1. null
  2. ""
  3. "0" // "0.0"为真
  4. 0;
  5. 0.0
  6. array()

你可能感兴趣的:(PHP 字符串操作)