检查变量值时,PHP if语句问题

Jan*_*nis 0 php if-statement return-value

我正在尝试编写一个简单的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>
Run Code Online (Sandbox Code Playgroud)

在这种情况下,自定义字段由wordpress admin(通过flutter插件)设置.我遇到的问题很简单,如果自定义字段留空,则为空

<li><a></a></li> 
Run Code Online (Sandbox Code Playgroud)

被建造.

get('linkname',2,1,0)显然返回字段内容(此部分有效).

任何想法将不胜感激.

谢谢,Jannis

tim*_*dev 5

仅仅因为变量为空并不意味着它不是isset().

你想检查它是否为().

$whatever = get('whatever',2,1,0)
if (! empty($whatever)){
//output your stuff
}
Run Code Online (Sandbox Code Playgroud)

要清楚:isset()只会告诉您符号表中是否存在变量名称.当变量为空时,empty()将返回true.

根据文件:

以下内容被认为是空的:

  • ""(空字符串)
  • 0(0为整数)
  • "0"(0作为字符串)
  • 空值
  • array()(一个空数组)
  • var $ var; (声明的变量,但在类中没有值)

编辑:empty()有点特殊,只能在常规变量上运行.您无法使用empty()测试表达式(例如,函数的返回值).这在手册页上清楚地记录了.