【问题标题】:How to definte variables for fields without data in them?如何为没有数据的字段定义变量?
【发布时间】:2019-03-14 20:57:45
【问题描述】:

我在 WordPress 网站中使用多个自定义字段进行了多次数据调用。这些字段不需要在后端填写。所以在我的模板中,我有这样的调用:

<?php if( $additional_fields[ 'Time' ] ) { echo 'Duration: ' . $additional_fields[ 'Time' ] . '<br>'; } ?>

现在这确实有效。这是伟大的。但是,如果我打开 WP Debug,并且该字段没有数据,我会收到以下信息:

注意:未定义索引:/home/hellod8/public_html/wp-content/themes/my-theme/page-data.php 中第 63 行的时间

再说一次,不是关键任务。如果我关闭调试,问题就会消失。但是,我仍然想解决这个问题。

我认为我可以在函数调用之上执行此操作:

<?php $additional_fields[ 'Time' ] = ''; ?>

但所做的只是对该字段不显示任何内容。

那么怎样才能消除错误呢?

【问题讨论】:

  • 用php函数isset检查你的数组中是否存在“时间”。
  • if( isset($additional_fields['Time'])) {.. or if(!empty($additional_fields['Time'])) {.. - 第一个检查是否有一个名为“时间”的字段,第二个检查是否有一个值(除了“ ') 里面。

标签: php wordpress runtime-error call


【解决方案1】:

您可以使用isset() 来确定变量是否已设置。示例:

if( isset($additional_fields['Time']) ){
    echo $additional_fields['Time'];
}

如果您要查看变量是否已设置且不为空,您可以使用empty()。示例:

if( !empty($additional_fields['Time']) ){
    echo $additional_fields['Time'];
}

empty() 将检查无数的事情,例如变量 isset 或值是否为 blankzerofalsenullempty()isset() 稍慢(主要是因为这些额外的检查)。

空就等于说:

if( isset($additional_fields['Time']) && $additional_fields['Time'] ){
    echo $additional_fields['Time'];
}

isset() - http://php.net/manual/en/function.isset.php

empty() - http://php.net/manual/en/function.empty.php

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-03
    相关资源
    最近更新 更多