将设置赋给变量并在IF语句中使用它

时间:2016-08-31 作者:Fabian Amran

是否可以分配

get_theme_mod(\'dds\') !==\'false\';
并将其包含在if语句中,而不是键入整个内容?

这是我正在处理的if语句:

$DDS = get_theme_mod(\'dds\')!==\'false\';

if(is_category() && $DDS) :
    //output some css style
endif;
我收到一个错误:Parse error: syntax error, unexpected \':\'

1 个回复
SO网友:bynicolas

更新:根据您的评论,DDS表示禁用动态样式,启用时为true,因此我相应地修改了该函数。检查->if ( is_category() && ! $DDS ) :

简短回答,yes 可以使用表示此函数的变量get_theme_mod(\'dds\')

现在我不知道该函数的结果是什么,所以请考虑检查considered false 转换为布尔值时。综上所述,将考虑空字符串、数组对象和0false, 将考虑每个非零数字(正或负)和非空字符串、数组、对象true.

所以你可以

$DDS = ! empty( get_theme_mod(\'dds\') ) ? get_theme_mod(\'dds\') : false ;
使用ternary operators 设置变量,然后if 陈述

if ( is_category() && ! $DDS ) :
  // Print CSS Style
endif;
注释

使用语法if endif; 当您有长函数时效果最好,因为您可以直观地看到if 结束,因此它提高了可读性。此外,在PHP中使用大量HTML时,它还提供了相同的可读性优势。但归根结底,这是一个偏好的问题。

EDIT

我刚注意到在分配$DDS 变量您实际上是在将检查结果存储到该变量中。你是说get_theme_mod(\'dds\') 不是假的,所以是真的,而且永远都是!

如果要处理该函数的实际值,需要使用我提供的三元运算符。

相关推荐

正在通过UpdraftPlus将WordPress从Dreamhost迁移到Azure WordPress资源“wp_Options表不存在...”错误

Goal我们的目标是将wordpress站点从DreamHost迁移到Azure wordpress资源。Process and Errors我们安装了UpdraftPlus (pro版本)在两个版本上。我们利用了它Send a backup to another site->Recieve a backup from a remote site功能。在数据库还原过程中,它失败并出现以下错误wp_options table does not exists....我们最终从下载了数据库备份文件Updra