php中字符串定义的三种方式


三种定义方式

  1. 单引号
  2. 双引号
  3. 定界符<<<

单引号与双引号的区别:

$name='张三';
echo $name;

输出 张三

$name="张三";
echo $name;

输出 张三

输出结果一样

区别:

$name='张三';
echo "我的姓名$name";//普通的字符串+变量名

输出 我的姓名:张三(输出结果正常)

$name='张三';
echo '我的姓名$name';//普通的字符串+变量名

输出 我的姓名$name;

得出:输出语句中,双引号里有变量名就会输出变量名,但是单引号会原封不动的输出变量名
注:在平常情况下双引号和单引号是一样的。
如果在echo中,输出变量名一定要使用双引号。

变量名在字符串中的一些常见问题
如:

<?php
header('content-type:text/html;charset=utf-8');
$name = '张三';
$sex = '男';
$age = 20;
echo "我的姓名为:$name,性别为:$sex,年龄为:$age";

输出 我的姓名为张三,性别为男,年龄为20

//如果输出语句改为
echo "我的姓名为:$name性别为:$sex年龄为:$age";

n a m e name和性别之间没有空格,也没有用符号作为分格,连接在了一起将会报错,系统认为 name和性别是变量名

解决这种情况:使用变量时加一对{},在里边嵌入变量名,目的标示这是变量名

//结果如下
echo "我的姓名为:{$name},性别为:{$sex},年龄为:{$age}";
//也可以使用.连接变量为和字符串结果一样(根据自己喜欢连接变量和字符串)
echo "我的姓名:".$name.",性别为".$sex.",年龄为:".$age;

定界符
我们平常都是这样写

$str='
<table border="1">
	<tr>
		<td width="50">1</td>
		<td>2</td>
	</tr>
	<tr>
		<td>3</td>
		<td>4</td>
	</tr>
	<tr>
		<td>5</td>
		<td>6</td>
	</tr>
</table>'
echo $str;

但是时刻都要注意’’,"",防止报错

所以使用定界符的原因如下:

  1. php定界符的作用就是按照原样,包括换格式什么的,输出在其内部的东西;
  2. 在php定界符中的任何特殊字符都不不需要转义;
  3. php定界符中php变量会正常的用其值代替。
    注:一般情况下定界符解决字符串过长
    也可以把变量名嵌入到里边
    也可以嵌入js

定界符格式

<<<EOF
......
EOF;

下面是使用定界符的例子:

$str= <<<eof
<table border="1">
	<tr>
		<td width="50">1</td>
		<td>2</td>
	</tr>
	<tr>
		<td>3</td>
		<td>4</td>
	</tr>
	<tr>
		<td>5</td>
		<td>6</td>
	</tr>
</table>
eof;
echo $str;

定界符里也可以插入js

$name='张三';
$str = <<<STR
<script type="text/javascript">
    alert("{$name}你好");
</script>
STR;
echo $str;

输出结果: 弹出 张三你好

定界符里也可以插入变量

$a = 5;
$b = 7;
$str= <<<eof
<table border="1">
	<tr>
		<td width="50">1</td>
		<td>2</td>
	</tr>
	<tr>
		<td>{$a}</td>
		<td>{$b}</td>
	</tr>
	<tr>
		<td>5</td>
		<td>6</td>
	</tr>
</table>
eof;
echo $str;

使用定界符所注意的问题:
首先在<<<之后的字符EOF是自己定义的,随便什么都可以(AAA都可以),但是结尾处的字符一定要和它是成对出现的,就像{}这样的。
其次,结尾一行,一定要另起一行,并且改行除了EOF;这个定界符结尾除标识之外不能有任何其他字符,前后都不能有,包括空格,如果在本行最前或者最后出现空格,将会收到错误信息。

猜你喜欢

转载自blog.csdn.net/weixin_43587078/article/details/83790609
今日推荐