这个PHP回音发生了什么,我如何解决它?

这个PHP回音发生了什么,我如何解决它?,php,wordpress,Php,Wordpress,我试图给wordpress模板添加一些逻辑。 我想构建一个简单的if条件,它将检查变量是否等于26。 变量“$value”必须包含一些额外的隐藏字符,因为当我回显内容时。。。26出现在应首先出现的回显字符串值之前。 因此,if条件也不起作用。 这里发生了什么事,我该如何解决 代码: 输出: 26value=() _ID()没有返回值,而是打印出来。这就是为什么不能将其分配给该变量 如果您可以编辑该函数,请让它返回值(尽管这可能会破坏应用程序中使用该函数的其他部分)。或者像这样捕捉它: ob_s

我试图给wordpress模板添加一些逻辑。 我想构建一个简单的if条件,它将检查变量是否等于26。 变量“$value”必须包含一些额外的隐藏字符,因为当我回显内容时。。。26出现在应首先出现的回显字符串值之前。 因此,if条件也不起作用。 这里发生了什么事,我该如何解决

代码:

输出:

26value=()
_ID()
没有返回值,而是打印出来。这就是为什么不能将其分配给该变量

如果您可以编辑该函数,请让它返回值(尽管这可能会破坏应用程序中使用该函数的其他部分)。或者像这样捕捉它:

ob_start();
the_ID();
$value = ob_get_clean();
echo "value=(" . $value . ")";
function the_ID(){
    $id = 26;
    echo $id;
}

看起来像是\u ID()回显ID本身。

这是因为\u ID()是一个模板函数:它只回显ID;它不退。您想改为使用get_the_ID()。

注释掉回声时会发生什么?
26
是否仍然出现?如果是这样,那么函数会回显它,而不是返回它

使用
var\u dump
打印变量的内容以进行调试:

var_dump( $value );

您可以这样做:

echo "value=(".the_ID().")";
或者,如果要为脚本中稍后使用的值赋值,请执行以下操作:

$value=get_the_ID();
echo "value=($value)";
您说您希望在脚本中使用
if
,以便类似地工作-

if(get_the_ID()==26){/*do whatever*/}

当然,您也可以使用$value==26,如果您更早地分配它。

正如许多人所建议的那样,
ID()
进行回音。这里有几件事你可以做

首先,看看WordPress是否有返回ID的功能,而不是打印ID(我个人不知道)

第二,您可以重新排列代码,让它按您喜欢的方式打印。。。像这样

echo "value=(" . the_ID() . ")";

第三,如果你真的想把它放在一个变量中,你可以捕获回声输出。像这样

ob_start();
the_ID();
$Value = ob_get_contents();
ob_end_clean();
echo $Value;

希望这能有所帮助。

我打赌您调用的函数与数字26相呼应

所以。。值实际上将=null

_ID()可能是这样一个函数:

ob_start();
the_ID();
$value = ob_get_clean();
echo "value=(" . $value . ")";
function the_ID(){
    $id = 26;
    echo $id;
}
ie:它不返回任何内容,它响应结果。(如果你仔细阅读wordpress的源代码,你可能会准确地找到正在发生的事情……并找出_ID()实际从何处获取页面ID

我快速搜索了wordpress说明:

注意:此函数显示 帖子,返回ID使用 获取\u ID()。用法

所以你使用了错误的函数

使用get_the_ID()而不是_ID())


一定有比示例代码显示的更多的内容。还有其他内容正在打印26。发布一个最小、完整的示例。或者ob_start();the_ID();$value=ob_get_clean();为什么有人会这样做?因为他们可以:)(免责声明:不要太认真了)我是php和wordpress的不速之客。谢谢哪里是查看wordpress文档的最佳位置,这些文档会向我显示get_the_ID()函数?@Bart van Heukelom,或者是因为他们不是wordpress编码员,不知道get_the_ID()的存在哇,我对stackoverflow的响应速度和质量感到惊讶。我会小心运用这项权力,尽量不要滥用。再次感谢,我同意。你可以找出它是否是一个字符串,它包含多少个字符等等。
the_ID(); //prints teh page id
$value=get_the_ID(); //returns the page_id