php中字串定義的三種方式
阿新 • • 發佈:2018-11-26
三種定義方式
- 單引號
- 雙引號
- 定界符<<<
單引號與雙引號的區別:
$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";
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;
但是時刻都要注意’’,"",防止報錯
所以使用定界符的原因如下:
- php定界符的作用就是按照原樣,包括換格式什麼的,輸出在其內部的東西;
- 在php定界符中的任何特殊字元都不不需要轉義;
- 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;這個定界符結尾除標識之外不能有任何其他字元,前後都不能有,包括空格,如果在本行最前或者最後出現空格,將會收到錯誤資訊。