1

所以,我有这个 rel/URL 我想把它塞进一个变量中,这样我就可以在别处打印出来:

$relnext = "<link rel='next' 
                  href='javascript:".$content_pager->PagerName
                                    . "_form." 
                                    . $content_pager->PagerName 
                                    . "PagerPage.value=\"" 
                                    . $content_pager->Page+1 
                                    . "\"; " 
                                    . $content_pager->PagerName 
                                    . "DoSubmit();' />"; 

事实上,当我打印出来时,我得到的只是:

1"; MediaBoxContentDoSubmit();' />

经过一些研究,我“似乎”应该使用 htmlentities,但是:

echo htmlentities($relnext);

也只是产生:

1"; MediaBoxContentDoSubmit();' />

这里应该使用其他功能吗?

非常感谢您提供的任何帮助!

4

1 回答 1

1

您有运算符优先级/关联性问题。.运算符左侧的运算符在运算+符之前执行+,因为它们都是左关联的并且具有相同的优先级。您希望+运算符 (in $content_pager->Page+1) 先执行,然后是所有.运算符。

实际上,您正在使用+运算符将​​字符串添加到数字 (1),在这种情况下,字符串(在 之前的所有内容+)将被视为 0。这就是第一个字符是 a 的1原因,因为它是"some string"+1, 被解释为0+1.

所以,你的第一个片段应该是:

$relnext = "<link rel='next' href='javascript: " . $content_pager->PagerName . "_form." . $content_pager->PagerName . "PagerPage.value=\"" . ($content_pager->Page+1) . "\"; " . $content_pager->PagerName . "DoSubmit();' />"; 

请注意,该$content_pager->Page+1部分现在位于括号中。

更多信息:

于 2013-08-31T06:14:14.400 回答