PHP学习之字符串操作

字符串简介

在PHP中如何定义字符串

/**
 *提示 'undefined constant still' 没有定义的常量still,说明不加定界符会当成常量解析
 *字符串需要书写到定界符中
 *定界符 1.单引号 2.双引号 3.heredoc语法结构 4.nowdoc语法结构 
 */
echo still;

 不同定界符的区别

/**
 * 单引号和双引号的区别
 * 1.双引号解析变量,单引号不解析变量(因此效率更高)
 * 2.双引号解析所有转义符,单引号只解析两个转义符:\\  \'
 */
//当内容和定界符冲突的时候需要使用转义符
$name = 'hanystill';
echo '我的名字是$name','<br/>';//我的名字是$name
echo "我的名字是$name",'<br/>';//我的名字是hanystill

$str = 'He said "I\'m fine."';//He said "I'm fine."
echo $str,'<br/>';
$str = "He said \"I'm fine.\"";//He said "I'm fine."
echo $str,'<br/>';

花括号的作用

/**
 * 花括号{}的作用1:
 * 当PHP解析器遇到一个美元符号($)时,它会和很多其它解析器一样,去组合尽量多的标识以形成一个合法的变量名
 * 可以用花括号来明确变量名的界限,将变量扩成一个整体来解析
 */
//两种写法,推荐{$name},花括号中不要有空格,否则花括号会被当做普通字符
echo "我的名字为{$name}sss",'<br/>';
echo "我的名字为${name}sss",'<br/>';
/**
 * 花括号{}的作用2:
 * 对字符串中的字符做增删查改操作,字符串下标从0开始,可以使用[]实现相同的操作
 * 编辑器报警告,说明不推荐这种写法
 * Array or string offset access with curly braces deprecated in PHP 7.4.
 * PHP 7.4中使用花括号的数组或字符串偏移访问已弃用。
 */
$str = 'abcdef';
echo $str{0},'<br/>';//a 查找操作
$str{2} = 't';//修改操作,只能用一个字符修改一个字符
echo $str,'<br/>';//abtdef
$str{3} = 'hello';//只会用h替换d
echo $str,'<br/>';//abthef0

$str = '你好';//utf-8编码下,一个中文字符占三个字节
echo $str{0},$str{1},$str{2},'<br/>';//输出“你”,这种操作没啥意义

$str = 'dest';
//删除操作,用空字符串/null替换,提示删除操作未生效 Warning: Cannot assign an empty string to a string offset
$str{2} = '';
$str{2} = null;

$str{5} = 'r';
echo $str,'<br/>';//dest r
var_dump($str);//string(6) "dest r" 字符串长度会变为6

heredoc和nowdoc

<?php
/**
 * heredoc语法结构:
 * <<<标识名
 *    内容...
 * 标识名;
 * 注意:
 * 1.标识名只能包含数字/字母/下划线,并且必须以字母/下划线开头
 * 2.结束符前不能有任何内容,例如空格/制表符
 * 3.PHP5.3之后可以将标识符用双引号括起来
 * 4.heredoc相当于双引号的作用
 */

$name = 'hanystill';
$table = <<<EOF
<table border='1'>
    <tr>
        <td>编号</td>
        <td>名字</td>
        <td>内容</td>
    </tr>
    <tr>
        <td>1</td>
        <td>{$name}</td>
        <td>He said "I'm fine."</td>
    </tr>
</table>
EOF;

echo $table;
echo '<hr/>';

echo <<<"T
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值