我正在尝试编写一个简单的PHP if语句来检查自定义字段是否输入了任何内容,或者是否已将其留空。
当它为空白时,意味着不向页面打印任何内容, 如果在自定义字段中设置了某些内容,那么它应该创建一个内部带有标记的li元素。
到目前为止,这是我的代码:
<ul class="externalLinks">
<? $emptycheck = get('linkname',2,1,0);
if (isset($emptycheck)){ ?>
<li><a href="<? echo get('targethref',2,1,0); ?>"><? echo get('linkname',2,1,0);?></a></li>
<? } else { '' } ?>
<li><a href="<? echo get('PDFdownload'); ?>">Download a PDF of this project</a></li>
</ul>
本案例中的自定义字段由wordpress admin(通过flutter插件)设置。 我遇到的问题很简单,如果自定义字段留空,则为空
<li><a></a></li>
已创建。
get('linkname',2,1,0)显然返回字段内容(此部分有效)。
非常感谢任何想法。
谢谢, Jannis
答案 0 :(得分:5)
仅仅因为变量为空并不意味着它不是isset()。
您想检查它是否为empty()。
$whatever = get('whatever',2,1,0)
if (! empty($whatever)){
//output your stuff
}
要明确:isset()只会告诉您符号表中是否存在变量名称。当变量为空时,empty()将返回true。
根据文件:
考虑以下事项 是空的:
- “”(空字符串)
- 0(0为整数)
- “0”(0作为字符串)
- NULL
- FALSE
- array()(空数组)
- var $ var; (声明的变量,但在类中没有值)
编辑:empty()有点特殊,只能在常规变量上运行。您无法使用empty()测试表达式(例如,函数的返回值)。这在手册页上清楚地记录了。
答案 1 :(得分:1)
你设置$ emptycheck,如果返回值是假的你可能需要
if ( $emptycheck ) {
} else {
}
否则它将始终评估为true。或者使用否定运算符(!)来翻转逻辑,如果是相反的话。