对回显带有变量的 HTML 锚点感到非常困惑。
<?php
echo ' <a href="?p=" . $current_page +1" . ">Next</a>';
?>
我尝试过很多变体,但我尝试过的都失败了。其中一项尝试是使用大括号
{
,但仍然一无所获。我知道我的单引号和双引号搞混了!
有人可以直接告诉我这个问题吗?另外,PHP 中撇号和引号的规则是什么。如果我想回应某些内容,我应该用什么开头,撇号还是引用。
<?php
echo ' <a href="?p='.($current_page + 1).'">Next</a>';
?>
如果您想在回声中进行一些其他技巧的数学计算,则需要将其括在括号中。
编辑:@DaveRandom 指出 tricery 子句的例外是
$var++
和 ++$var
。
如果在打印字符串时使用
'
,则里面的所有内容都会被视为文本。
如果您使用
"
,则内部传递的变量将转换为其值。
但是不可能在内部进行数学运算
"
。你必须逃避它并以“PHP 方式”完成它。
<?php
echo ' <a href="?p=' . ($current_page +1) .'">Next</a>';
?>
使用双引号
"something"
并在变量位于引号内时用大括号括起来。
echo " <a href='?p={$current_page+1}'>Next</a>";
您还可以使用字符串连接,这基本上意味着将几个字符串连接在一起:
echo 'something' . 'something else' . $my_variable;
至于转义,如果在某些引号内的任何位置您想要插入相同类型的引号(例如,如果您用双引号将脚本括起来并且想要插入双引号),则需要通过在它们前面添加以下内容来转义这些引号反斜杠 -
\
.
例如,您想要输出
<a href="#url">Text</a>
并且已将其用双引号括起来,则需要在 HREF 属性中通过在它们前面添加反斜杠 \
来转义这些双引号,因此结果应为 <a href=\"#url\">Text</a>
。
以下是转义和显示字符的有效方法:
echo "it\" so nice to be here";
echo 'it\'s so nice to be here';
echo "it's so nice to be here"; // Different quotes, no need to escape
echo 'it"s so nice to be here'; // Different quotes, no need to escape
以下情况会导致错误:
echo 'it's so nice the be here';
因为 PHP 解释器会假设表达式以
it's
中的引号结束,导致该行的其余部分被处理为无效代码。
我假设你想这样做:
echo ' <a href="?p='.($current_page + 1)'.">Next</a>';
使用带有占位符的模板字符串将使您的代码更具可读性,更易于管理,并且不太可能遇到错误行为。
%d
是整数的占位符。%s
是字符串的占位符。代码:
$link = ' <a href="?p=%d">%s</a>';
printf($link, $current_page - 1, "Prev");
printf($link, $current_page + 1, "Next");