php字符串类型(部分)
引号
单引号:定义一个字符串
双引号:PHP 会对中间一些特殊的字符进行解析
$a = 'red';
echo '颜色:$a';
echo "颜色:$a";
双引号内部的有数组单元,键名不能加单引号会抛异常,只有在花括号情况下键名才能使用单引号
$color= array("red", "orange", "blue","childColor" => "purple");
echo "颜色:$color[childColor]".PHP_EOL;
echo "颜色:${color['childColor']}".PHP_EOL;
echo $color['childColor'];
Heredoc
很类似js中的字符串模板,不过这里Heredoc结构可以解析其中的特殊字符,也就是js字符串模板中的xxx${xxx}xx
,在用这个不仔细看文档就会范和我一样的错
// 错误
public function test3(){
$b = <<<GOD
sdsadsadsadas
ddsadsadsa
dsadsad
GOD;
echo "$b";
}
// 正确
public function test3(){
$b = <<<GOD
sdsadsadsadas
ddsadsadsa
dsadsad
GOD;
echo "$b";
}
一直报错syntax error, unexpected end of file
仔细看了下文档,才发现我这里就错了2个地方了:
<<<GOD
:这里后面多了个空格符,这里GOD后面不能有任何符号GOD
: 这里没有顶头写,GOD前面必须是一个换行符
,不允许有任何其他符号存在
Nowdoc
类似Heredoc 结构
- Nowdoc 不能解析内容,按原样输出,
- <<<'xxx’这里的标识符需要用单引号扩起
字符串函数
strlen:获取字符串长度
$str = '123abc';
echo strlen($str) // 6
str_replace:字符串替换
str_replace ( A , B, C ) ----- 将C中所有的A替换成B的结果返回
注意:如果A和B是数组,将对C做二者的映射替换。如果 B 的值的个数少于 A 的个数,多余的替换将使用空字符串来进行。如果 A是一个数组而 B是一个字符串,那么 A中每个元素的替换将始终使用这个字符串。
$search = array('A', 'B', 'C', 'D', 'E');
$replace = array('B', 'C', 'D', 'E', 'F');
$subject = 'A';
echo str_replace($search, $replace, $subject); // F
// A->B B->C C->D D->E E->F
// B 的值的个数少于 A 的个数 空字符串替换
$letters = array('a', 'p');
$fruit = array('apple');
$text = 'a p';
$output = str_replace($letters, $fruit, $text);
echo $output; // ale a->apple apple->ale
substr_replace: 字符串替换
substr_replace (A , B, C,length)
将字符串A的中由 C 和可选的 length 参数限定的子字符串使用 B 进行替换
$str= 'apple';
echo "我喜欢吃: $str".PHP_EOL; // 我喜欢吃: apple
echo substr_replace($str, 'orange', 0) . PHP_EOL; // orange
echo substr_replace($str, 'orange', 0, strlen($str)) . PHP_EOL; // orange
echo substr_replace($str, 'cc', 3, 1) .PHP_EOL; // appcce
echo substr_replace($str, 'cc', 3, -1) .PHP_EOL; // appcce