美文网首页
PHP 字符串操作

PHP 字符串操作

作者: 猪脚面线 | 来源:发表于2020-01-13 14:02 被阅读0次

    碎碎念

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

    双引号和单引号的区别

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

    花括号的运用

    • 划分变量的界限
      PHP在解析到$时会尽可能多的标识来解析一个变量,可以用大括号把变量括起来可以让变量成为一个整体,明确变量名的界限,后面还可以加其它字符串,避免解析错误。注意,花括号之间不能有空格。
    <?php
    echo "我的名字是{$username}哈哈哈哈";
    
    • 字符串增删改查
      需要注意:
    1. 字符串下标从0开始
    2. 也可以用[]达到同样的效果
    3. 只能用一个字符修改一个字符,$str{1}='hello'只能取字符h
    4. 不适合使用中文这种多字节编码的语言
    <?php
    $str = 'Hello World';
    echo $str{1}; // e
    $str{1}=''; // 删除操作,其实只是替换,长度并没有改变
    $str{1}='h'; // 更新操作
    $str{11}=';'; // 增加操作
    echo $str{mt_rand(0, strlen($str)-1)}; // 随机出现一个字母
    

    heredoc/nowdoc

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

    <?php
    <<<xxx
        内容......
    xxx;
    

    需要注意:

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

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


    截屏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()
    <?php
    $var=123;
    $res=(string)$var;
    var_dump($res); // string(3) "123"
    $boo=true
    var_dump(strval($boo)); // string(1) "1"
    

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

    • 永久转换
      settype()gettype()
    $var='gaohang';
    $var1=123;
    echo gettype($val); // string
    echo gettype($var1); // integer
    settype($varq,'string');
    
    • 数字与字符串相加规律
    字符串转换规律

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

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

    相关文章

      网友评论

          本文标题:PHP 字符串操作

          本文链接:https://www.haomeiwen.com/subject/mhtgactx.html