<?php
$value="Hello";
echo '
<table border="1">
<tr>
<td>Row $value, cell 1</td>
<td>Row 1, cell 2</td>
</tr>
</table>
';
?>
为什么我没有得到 Hello 而不是 $value。如何使它成为可能。
<?php
$value="Hello";
echo '
<table border="1">
<tr>
<td>Row $value, cell 1</td>
<td>Row 1, cell 2</td>
</tr>
</table>
';
?>
为什么我没有得到 Hello 而不是 $value。如何使它成为可能。
基本的 PHP 解析规则:用单引号 ( '
)括起来的字符串不会被 PHP 解析器评估,并且其中的任何变量都将作为文字文本被忽略。尝试
echo "
...
$value
...
";
反而。注意使用双引号 ( "
)。
此外,请不要使用多线回声。它们很难维护。如果您必须进行多行输出或分配,请考虑改用HEREDOC。
HEREDOCs 消除了引用引号的需要,因此您的回声变为:
echo <<<EOL
<table border="1">
...
$values
...
</table>
EOL;
在多行上使用字符串对我来说从来都不是一个好的解决方案。我更喜欢heredoc:
$value="Hello";
echo <<<EOD
<table border="1">
<tr>
<td>Row {$value}, cell 1</td>
<td>Row 1, cell 2</td>
</tr>
</table>
EOD;
您可以在这样的双引号内使用变量,但不能使用单引号。改为这样做:
echo '
<table border="1">
<tr>
<td>Row '.$value.', cell 1</td>
<td>Row 1, cell 2</td>
</tr>
</table>';
或者您可以这样做并转义字符串中的引号:
echo "
<table border=\"1\">
<tr>
<td>Row $value, cell 1</td>
<td>Row 1, cell 2</td>
</tr>
</table>";
但是,我建议使用第一种方式,因为它的代码更高效、更简洁。
<?php
$value="Hello";
echo '
<table border="1">
<tr>
<td>Row ' . $value . ', cell 1</td>
<td>Row 1, cell 2</td>
</tr>
</table>';
?>
您只能在双引号中打印 Php 变量,而不是在单引号中。
或者
echo '
<table border="1">
<tr>
<td>Row '.$value.', cell 1</td>
<td>Row 1, cell 2</td>
</tr>
</table>
';
?>
您需要将其封装在双引号中,以便处理器评估其中的任何变量。
echo "
<table border='1'>
<tr>
<td>Row $value, cell 1</td>
<td>Row 1, cell 2</td>
</tr>
</table>
";
原因是如果您将使用单引号,那么解析器将不会在其中查找变量。为此,您需要使用双引号或将变量放在单引号之外。
<?php
$value="Hello";
echo '
<table border="1">
<tr>
<td>Row '. $value .', cell 1</td>
<td>Row 1, cell 2</td>
</tr>
</table>
';
?>
或者
<?php
$value="Hello";
echo "
<table border='1'>
<tr>
<td>Row $value, cell 1</td>
<td>Row 1, cell 2</td>
</tr>
</table>
";
?>