2012-09-12 74 views
0

使用里面的变量回显HTML锚点非常困惑。PHP变量和字符串

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

我已经尝试了很多我失败过的尝试过的变体。其中一个尝试是花括号{但仍然没有。我知道我让我的单引号和双引号混淆起来!

有人请让我直接在这一个。另外,PHP中的撇号和引号的规则是什么。如果我想回应一些事情,我该怎么开始,撇号或引用。

回答

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

如果你想在回声中做一些其他技巧的数学,你需要将它包括在括号中。

编辑:@DaveRandom指出,诡计子句的例外是$var++++$var

+0

现货!这是我忘记的括号。非常感谢。 – ShadowStorm

+0

@ShadowStorm我认为你的报价也需要一些小玩意,但这很容易解决。 – Fluffeh

+0

'如果你想在回声中做一些其他技巧的数学,你需要将它包括在括号中。“ - 这个规则的例外是'$ var ++'和'++ $ var'。虽然实际上也有一个技巧来调用函数而不用使用变量变量引用引号,但它太可怕了,我甚至不会因为担心某个人使用它而发布它。 – DaveRandom

2

如果在打印字符串时使用',则里面的所有内容都将被视为文本。

如果您使用",则传入的变量将转换为其值。

但是不可能在"里面进行数学运算。你必须逃避它并以'PHP方式'来完成。

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

我假设你想这样做:

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

你可以试试这个

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

printf($link, $current_page - 1, "Prev"); 
printf($link, $current_page + 1, "Next"); 
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文档以及有关Quotes and Strings的精彩文章。