奇怪的我对$testvalue = 0. else部分运行,当我回显$testvalue 它给我一个0。
那么$testvalue?
我需要能够运行if部分。
我正在尝试使用post_exists() 函数检查数据库中是否存在post。如果它不存在,我想打电话给insert_post() 函数自动创建新帖子或页面。但我需要这个返回0才能工作。
有什么关于原因的建议吗$testvalue = 0 未运行if部件(echo "before: " . $testvalue)
if ( ! is_admin() ) {
require_once( ABSPATH . \'wp-admin/includes/post.php\' );
}
add_action(\'wp_footer\', \'my_customoutput\');
function my_customoutput(){
$checklinktitle = \'Events 321 Page\';
$testvalue = post_exists( $checklinktitle );
if ($testvalue = 0) {
echo \'Before: \' . $testvalue;
} else {
echo \'Firing of Else statement but the value of $testvalue is \' . $testvalue;
}
}
SO网友:Jacob Peattie
您没有正确检查值。单人间= 标志是assignment operator. 所以当你写作的时候$variable = 0 您正在将变量设置为0. 无论您是否处于if 陈述
所以当你写作的时候if ( $testvalue = 0 ) { 您正在设置$testvalue 到0,这本质上与false相同,因此条件将失败。
要比较值,需要使用comparison operator. 您可以查看该链接以获取更多信息,但本质上您需要使用== 检查值是否相同,或=== 检查它们是否相同type.
if ( 0 === $testvalue ) {
echo \'Before: \' . $testvalue;
} else {
echo \'Firing of Else statement but the value of $testvalue is \' . $testvalue;
}
请注意,我使用了
yoda condition. 根据WordPress PHP编码标准:
在进行涉及变量的逻辑比较时,始终将变量放在右侧,将常量、文字或函数调用放在左侧。