带有变量集成的PHP字符串连接


PHP String Concatenation with variable integration

在Classic ASP工作了15年后,我是PHP的新手,在连接等基础知识方面已经遇到了麻烦。你能帮我破解这个问题吗?请:

$pstr_out .= '<a href="pg='.$pg-1.'" id="Page'.$pg-1.'Link">&laquo;&nbsp;Previous</a>&nbsp;'r';

非常感谢。

如果您真的想连接一个表达式,请使用括号

$pstr_out .= '<a href="pg='. ($pg-1) .'" id="Page'. ($pg-1) .'Link">&laquo;&nbsp;Previous</a>&nbsp;'r';
echo $pstr_out;

最有可能的$pg-1部分

取决于PHP 给出的错误

$pstr_out .= '<a href="pg='.($pg-1).'" id="Page'.($pg-1).'Link">&laquo;&nbsp;Previous</a>& nbsp;'r';

问题是

 $pg-1

做这个

$page = $pg-1;

$pstr_out .= '<a href="pg='.$page.'" id="Page'.$page.'Link">&laquo;&nbsp;Previous</a>& nbsp;'r';

它必须是

一旦你准备好了所有的数据,就开始打印

<a href="pg=<?=$pg?>" id="Page<?=$pg?>Link">&laquo;&nbsp;Previous</a>&nbsp;
$x = $pg-1;
    $pstr_out .= '<a href="pg='.$x.'" id="Page'.$x.'Link">&laquo;&nbsp;Previous</a>&nbsp;'r';

出现解析错误的真正原因特别是php认为1.'string'是一个带小数点的浮点值,然后就会出错。在整数+句点组合1 . 'string'之后需要一个空格。

更糟糕的是,仅仅添加空格是不够的——您还需要括号,以免将php与串联与算术混淆:'<a href="pg=' . ($pg - 1) . '" id="Page' . ($pg - 1) .'Link">&laquo;&nbsp;Previous</a>&nbsp;'r'

最后,你最后的'''r'是错误的,原因有二:

  1. 您可能真的不想要''r-您想要(*nix/mac)或(windows)
  2. 你把它放在单引号里。控制字符只能用双引号解析,因此您需要"''n"或"''r''n",或者在输出中得到一个反斜杠+字母