美文网首页
PHP 的 字符串简介及基本使用 -- PHP 学习 (十)

PHP 的 字符串简介及基本使用 -- PHP 学习 (十)

作者: 无故下架内容so账号已弃用 | 来源:发表于2019-04-28 23:53 被阅读0次

    常用的定界符

    • 双引号:

    双引号会解析变量,

    • 单引号:

    单引号不会解析变量, 理论上,使用单引号, 不需要解析变量效率会更快一些,推荐使用单引号

    <?php
        header('content-type: text/html;charset=utf-8');
    
        $str = 'guoyou.li';
    
        echo "$str"; // => guoyou.li
    
        echo '<br />';
    
        echo '$str'; // => $str
    
    • heredoc 语法结构:

    语法结构:

    <<<标识名称
      内容...
    标识名称;
    

    (a) 标识名称只能包含字母,数字,下划线, 并且必须以字母和下划线开始

    (b) 结束符前不能有任何内容, 包括制表符和空格等都不可以

    <?php
    header('content-type: text/html;charset=utf-8');
    
    $name = 'guoyou';
    $age = 24;
    
    $table = <<<table
    <table border="1">
        <tr>
            <td>名字</td>
            <td>{$name}</td>
        </tr>
        <tr>
            <td>名字</td>
            <td>{$age}</td>
        </tr>
    </table>
    table;
    
    echo $table;
    
    $str = <<<"str"
    标识符还可以用双引号, heredoc 和双引号作用一样, 解析变量和转义符, 
    标识名称的双引号 php 5.3 + 可以不写
    str;
    
    echo $str;
    
    heredoc 输出结果
    • nowdoc 语法结构:
    <?php
    header('content-type: text/html;charset=utf-8');
    
    $name = 'guoyou';
    $age = 24;
    
    $table = <<<'table'
    <table border="1">
        <tr>
            <td>名字</td>
            <td>{$name}</td>
        </tr>
        <tr>
            <td>名字</td>
            <td>{$age}</td>
        </tr>
    </table>
    <div>nowdoc 和单引号作用一样, 不解析变量和转义符, 
    标识名称需要放在单引号中</div>
    table;
    
    echo $table;
    
    nowdoc 输出结果

    花括号 {$var}

    当 php 解析器遇到一个美元符号 ($) 的时候, 它会和其他的很多解析器一起, 去组合尽量多的标识以形成一个合法的变量名, 可以用花括号来明确变量名的界限, 将变量扩成一个整体来解析

    例子:

    <?php
    header('content-type: text/html;charset=utf-8');
    
    $name = 'guoyou';
    
    echo "我是$name"; // => 我是guoyou
    
    echo '<br />';
    
    echo "我是$name_li"; // => Notice: Undefined variable: name_li
    
    echo '<br />';
    
    echo "我是{$name}_li"; // => 我是guoyou_li
    
    

    花括号 {} 的作用

    • 可以通过 {} 对字符串中的指定字符串进行增删改查的操作

    • 字符串的下标从 0 开始

    • 可以通过 [] 实现相同的操作

    <?php
    header('content-type: text/html;charset=utf-8');
    
    $name = 'guoyou.li';
    
    echo $name{0}; // => g
    
    echo '<br />';
    
    echo $name[0]; // => g
    
    echo '<br />';
    
    $name{6} = '_';
    echo $name; // => guoyou_li
    
    echo '<br />';
    
    // 只能用一个字符修改一个字符
    $name{0} = 'ABC';
    echo $name; // => Auoyou_li
    
    echo '<br />';
    
    $name{20} = 'G';
    echo $name; // => Auoyou_li G
    
    echo '<br />';
    
    // 虽然第三位被替换成空字符串 '', 但是字符长度仍然不变
    $str = 'abc';
    $str{2} = '';
    var_dump($str); // => string(3) "ab"
    

    其他类型转换成字符串类型

    自动类型转换规则:

    1. 数值型 => 数值本身
    2. 布尔型 => ture -> 1, false -> 空字符串
    3. null => 空字符串
    4. 数组类型 => array
    5. 资源类型=> Resource id #数字

    强制转换/隐式转换

    1. 临时转换:
      (string)$var
    <?php
    header('content-type: text/html;charset=utf-8');
    
    $var = 123;
    
    var_dump((string)$var); // => string(3) "123"
    echo '<br />';
    var_dump($var); // => int(123)
    
    echo '<br />';
    $var = true;
    var_dump((string)$var); // => string(1) "1"
    echo '<br />';
    var_dump($var); // => bool(true)
    
    echo '<br />';
    
    $var = array(2,3,4);
    var_dump((string)$var); // => string(5) "Array"
    echo '<br />';
    var_dump($var); // => array(3) { [0]=> int(2) [1]=> int(3) [2]=> int(4) }
    
    echo '<br />';
    
    $var = null;
    var_dump((string)$var); // => string(0) ""
    echo '<br />';
    var_dump($var); // => NULL
    
    echo '<br />';
    
    $var = fopen('utils/a.php', 'r');
    var_dump((string)$var); // => string(14) "Resource id #3"
    echo '<br />';
    var_dump($var); // => resource(3) of type (stream)
    
    1. 永久转换
      设置变量类型 settype($var, type)
      获取 gettype($var)
    <?php
    header('content-type: text/html;charset=utf-8');
    
    $var = 123;
    
    settype($var, 'string');
    
    echo gettype($var); // => string
    
    echo '<br />';
    
    $var = 123;
    
    echo gettype($var); // => integer
    
    echo '<br />';
    
    $var = null;
    
    echo gettype($var); // => NULL
    
    echo '<br />';
    
    $var = array();
    
    echo gettype($var); // => array
    
    echo '<br />';
    
    $var = true;
    
    echo gettype($var); // => boolean
    

    字符串转换成其他类型

    通过 + 号: 取合法数值, 如果不是合法数值开始, 则转换成 0

    'true' => 0

    <?php
    header('content-type: text/html;charset=utf-8');
    
    echo 1+'34guoyou'; // 1+34 => 35
    
    echo '<br />';
    
    echo 1.2+'3sdf'; // 1.2+3 => 4.2
    
    echo '<br />';
    
    echo 3+'dfs'; // 3+0 => 0
    
    echo '<br />';
    
    echo 5+true; // 5+0 => 5
    
    echo '<br/>';
    
    $var = ''; // => 转换成了 false
    $var = '0'; // => 转换成了 false
    $var = 0; // => 转换成了 false
    $var = null; // => 转换成了 false
    $var = array(); // => 转换成了 false
    $var = 0.0; // => 转换成了 false
    if ($var) {
        echo '转换成了 true';
    } else {
        echo '转换成了 false';
    }
    

    后续下篇: PHP中字符串函数库常用函数解析

    学习资料: https://www.imooc.com/learn/726

    相关文章

      网友评论

          本文标题:PHP 的 字符串简介及基本使用 -- PHP 学习 (十)

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