第七课:输出字符串
上节课有会员提到能不能在PHP中契入HTML代码,有的问到能不能契入JavaScript代码的问题,问得好,多实践多思考就会有各种各样疑问,我们的水平就是在不断解决这些疑问的过程中得到提高。回答当然是肯定的,要不然PHP早被骂死了。我们用PHP最终的目的就是要输出我们想要的东西到网页中,但如果你不知道一些方法和技巧也会头痛的。所以这节课我会告诉大家利用PHP输出字符串的问题。
字符串的定义:
字符串可以用三种字面上的方法定义。
1.直接输出字符:
例如7-1: echo '我是PHP中文社区的学员';
2.输出变量
例如7-2:$str = '我是PHP中文社区的学员'; echo $str;
3.使用转义符:
我们知道,用单引号定义字符串,那么如果我们的字符串中刚好也有单引号岂不要引起PHP混乱吗?这种情况要怎么解决呢?
这就要在它的前面使用转义符号“/”。例如7-3:
<?
php
echo
'
我是'PHP中文社区'的学员<br>
'
;
$str
=
'
我是'PHP中文社区'的学员<br>
'
;
echo
$str
;
echo
'
<script language=javascript>window.alert('PHP中文社区网址是www.phpNet.cn')</script>
'
;
?>
呵呵,看到了吧,上面的代码还会输出HTML代码和JavaScript代码。<br>是HTML中的换行标记。
提个问题:要用echo输出路径 C:/windows/system32 怎么做?你试试看。
4.使用双引号
双引号也能定义字符串,那么和单引号有什么区别吗?看例子7-4:
$url = 'www.phpNet.cn';
echo "PHP中文社区的网址是$url";
结果会输出:PHP中文社区的网址是www.phpNet.cn
用双引号定义的字符串,其中的变量会被变量的值替换,你把上面的双引号换成单引号试试看。
另外,如果用双引号(")括起字符串,PHP 懂得更多特殊字符的转义序列:
表格 7-1. 转义字符
单就处理字符串而言,使用单引号要比使用双引号速度要快,所以你要在你的程序中选择适当的引号。
5.连接字符串
半角句号“.”是字符串连接符,可以把两个字符串连接成一个字符串。例如7-5:
<?
php
$str
=
'
PHP中文社区地址是
'
;
$url
=
'
www.phpNet.cn
'
;
$txt
=
$str
.
$url
;
echo
$txt
.
'
<br>
'
;
echo
$str
.
$url
;
?>
<?
php
$str
=
'
PHP中文社区地址是
'
;
$str
.=
'
www.phpNet.cn
'
;
echo
$str
;
?>
<?
php
$url
=
'
www.phpNet.cn
'
;
$str
=
<<<
EOD
......
我已经记住了PHP中文社区的网址是
$url
.
......
EOD;
echo
$str
;
?>
定界符中的变量会被解析,比如其中的$url会被它的值
www.phpNet.cn
替换。
包含在<<<EOD和EOD中的部分被定义为字符串。定界标识符可以自己定义,但必须遵循 PHP 中其它任何标签的命名规则:只能包含字母数字下划线,而且必须以下划线或非数字字符开始。结束标识符必须从行的第一列开始。比如上面的EOD你也可以换成EOF。
7.使用花括号
如果遇到这种情况,你认为PHP会作怎样处理呢?
$num=3;
echo '你知道这个厂家提供几A服务吗?';
echo "经查询,这个厂家提供$numA服务";
运行这段程序,你认为会输出什么呢?是的,会出现错误。为什么$num不能被它的值3替换呢?这是因为PHP会尽最大限度的匹配变量名,它把$numA作为变量而不是$num,而$numA又没有赋值,所以会出现错误。那么怎样处理才能输出我们想要的结果呢?使用花括号{}。写成如下形式:
echo "经查询,这个厂家提供{$num}A服务";
或
echo "经查询,这个厂家提供${num}A服务";
好了,这课的内容已经够多的了,你不亲自动手操作,不反复实践是记不住的。这些东西在编程中往往会给你带来麻烦。多多练习吧,有什么问题就在此跟贴提出。
第七课:输出字符串
上节课有会员提到能不能在PHP中契入HTML代码,有的问到能不能契入JavaScript代码的问题,问得好,多实践多思考就会有各种各样疑问,我们的水平就是在不断解决这些疑问的过程中得到提高。回答当然是肯定的,要不然PHP早被骂死了。我们用PHP最终的目的就是要输出我们想要的东西到网页中,但如果你不知道一些方法和技巧也会头痛的。所以这节课我会告诉大家利用PHP输出字符串的问题。
字符串的定义:
字符串可以用三种字面上的方法定义。
- 单引号
- 双引号
- 定界符
1.直接输出字符:
例如7-1: echo '我是PHP中文社区的学员';
2.输出变量
例如7-2:$str = '我是PHP中文社区的学员'; echo $str;
3.使用转义符:
我们知道,用单引号定义字符串,那么如果我们的字符串中刚好也有单引号岂不要引起PHP混乱吗?这种情况要怎么解决呢?
这就要在它的前面使用转义符号“/”。例如7-3:










提个问题:要用echo输出路径 C:/windows/system32 怎么做?你试试看。
4.使用双引号
双引号也能定义字符串,那么和单引号有什么区别吗?看例子7-4:
$url = 'www.phpNet.cn';
echo "PHP中文社区的网址是$url";
结果会输出:PHP中文社区的网址是www.phpNet.cn
用双引号定义的字符串,其中的变量会被变量的值替换,你把上面的双引号换成单引号试试看。
另外,如果用双引号(")括起字符串,PHP 懂得更多特殊字符的转义序列:
表格 7-1. 转义字符
/n | 换行(LF 或 ASCII 字符 0x0A(10)) |
/r | 回车(CR 或 ASCII 字符 0x0D(13)) |
/t | 水平制表符(HT 或 ASCII 字符 0x09(9)) |
// | 反斜线 |
/$ | 美元符号 |
/" | 双引号 |
/[0-7]{1,3} | 此正则表达式序列匹配一个用八进制符号表示的字符 |
/x[0-9A-Fa-f]{1,2} | 此正则表达式序列匹配一个用十六进制符号表示的字符 |
单就处理字符串而言,使用单引号要比使用双引号速度要快,所以你要在你的程序中选择适当的引号。
5.连接字符串
半角句号“.”是字符串连接符,可以把两个字符串连接成一个字符串。例如7-5:












技巧:我们可以使用字符串连接符累加字串。例如7-6:








运行后输出:PHP中文社区地址是www.phpNet.cn
第一句我们给$str赋值,$str表示字串"PHP中文社区地址是",第二句表示在$str的值上累加字串"www.phpNet.cn",所以,$str最后表示字串"PHP中文社区地址是www.phpNet.cn"。
你知道以下代码运行后将会输出什么吗:$add="中国"; $add.="北京"; $add.="奥运会"; echo $add;
6.使用定界符
如果我们有大段大段的HTML代码或JS代码要输出有没有更好的办法呢?有,使用定界语法(“<<<”)。例如7-7:
定界符字符串例子













包含在<<<EOD和EOD中的部分被定义为字符串。定界标识符可以自己定义,但必须遵循 PHP 中其它任何标签的命名规则:只能包含字母数字下划线,而且必须以下划线或非数字字符开始。结束标识符必须从行的第一列开始。比如上面的EOD你也可以换成EOF。
7.使用花括号
如果遇到这种情况,你认为PHP会作怎样处理呢?
$num=3;
echo '你知道这个厂家提供几A服务吗?';
echo "经查询,这个厂家提供$numA服务";
运行这段程序,你认为会输出什么呢?是的,会出现错误。为什么$num不能被它的值3替换呢?这是因为PHP会尽最大限度的匹配变量名,它把$numA作为变量而不是$num,而$numA又没有赋值,所以会出现错误。那么怎样处理才能输出我们想要的结果呢?使用花括号{}。写成如下形式:
echo "经查询,这个厂家提供{$num}A服务";
或
echo "经查询,这个厂家提供${num}A服务";
好了,这课的内容已经够多的了,你不亲自动手操作,不反复实践是记不住的。这些东西在编程中往往会给你带来麻烦。多多练习吧,有什么问题就在此跟贴提出。