<?php练功房

第 1 章 · 入门 · 第 1.3 课

字符串

约 15 分钟

单引号和双引号

两种引号都能表示字符串,区别在于双引号会解析里面的变量和转义字符(如 \n 换行、\t 制表符),单引号则原样输出。

变量后面紧跟着其他文字时,用花括号 {$name} 把变量括起来,PHP 才知道变量名在哪里结束。变量后面紧跟中文时一定要加花括号,因为 PHP 允许中文出现在变量名里,"$name你好" 会被当成变量 $name你好。

拼接

PHP 用点号 . 拼接字符串(不是加号)。.= 表示“在后面追加”。

常用字符串函数

函数作用
strlen($s) / mb_strlen($s)长度(字节 / 字符)
strtoupper / strtolower / ucfirst转大写 / 转小写 / 首字母大写
trim($s)去掉两端空白
str_replace($find, $replace, $s)替换
substr($s, $start, $length)截取一段
strpos($s, $find)查找位置,找不到返回 false
str_contains / str_starts_with / str_ends_with是否包含 / 以…开头 / 以…结尾(PHP 8)
str_repeat($s, $n)重复 n 次
sprintf($format, ...)按格式生成字符串

位置从 0 开始数:"abcdef" 里 a 的位置是 0。

sprintf 里的 %s 代表字符串,%d 代表整数,%.2f 代表保留两位小数的浮点数。

多行字符串:heredoc

要写一大段带变量的文字(比如一段 HTML)时,用 heredoc 语法很方便。<<<HTML 开始,单独一行的 HTML; 结束,中间可以随便换行、放变量。

选择题

下面代码输出什么?

<?php
$n = 3;
echo 'n = $n';

选择题

strlen("你好") 的结果是多少?

练习 1

首字母大写

变量 $name 里存着小写的 "alice"。用函数把它变成首字母大写,输出:

Hello, Alice!

不要把 Alice 直接写进代码里。

练习 2

取出邮箱用户名

从 $email 中取出 @ 前面的部分并输出。对 "someone@example.com",输出应该是:

someone

你的代码要对任何邮箱都有效。

练习 3

格式化价格

单价 $price 是 3.5 元,买了 $qty 个。输出总价,保留两位小数:

总价:14.00 元