将 1 添加到 echo 表达式内部的变量[关闭]

问题描述 投票:0回答:5

对回显带有变量的 HTML 锚点感到非常困惑。

<?php
echo '&nbsp;&nbsp;<a href="?p=" . $current_page +1" . ">Next</a>';
?>

我尝试过很多变体,但我尝试过的都失败了。其中一项尝试是使用大括号

{
,但仍然一无所获。我知道我的单引号和双引号搞混了!

有人可以直接告诉我这个问题吗?另外,PHP 中撇号和引号的规则是什么。如果我想回应某些内容,我应该用什么开头,撇号还是引用。

php echo increment
5个回答
5
投票
<?php
echo '&nbsp;&nbsp;<a href="?p='.($current_page + 1).'">Next</a>';
?>

如果您想在回声中进行一些其他技巧的数学计算,则需要将其括在括号中。

编辑:@DaveRandom 指出 tricery 子句的例外是

$var++
++$var


2
投票

如果在打印字符串时使用

'
,则里面的所有内容都会被视为文本。

如果您使用

"
,则内部传递的变量将转换为其值。

但是不可能在内部进行数学运算

"
。你必须逃避它并以“PHP 方式”完成它。

<?php
echo '&nbsp;&nbsp;<a href="?p=' . ($current_page +1) .'">Next</a>';
?>

2
投票

使用双引号

"something"
并在变量位于引号内时用大括号括起来。

echo "&nbsp;&nbsp;<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() 函数的 PHP 文档以及关于 引号和字符串 的精彩文章。


1
投票

我假设你想这样做:

echo '&nbsp;&nbsp;<a href="?p='.($current_page + 1)'.">Next</a>';

1
投票

使用带有占位符的模板字符串将使您的代码更具可读性,更易于管理,并且不太可能遇到错误行为。

  • %d
    是整数的占位符。
  • %s
    是字符串的占位符。

代码:

$link = '&nbsp;&nbsp;<a href="?p=%d">%s</a>';

printf($link, $current_page - 1, "Prev");
printf($link, $current_page + 1, "Next");
© www.soinside.com 2019 - 2024. All rights reserved.