【问题标题】:PHP Function does not return keyPHP函数不返回键
【发布时间】:2017-01-22 20:23:28
【问题描述】:

请告诉我我在这里做错了什么... PHP 版本 5.6.27 使用 wordpress 4.7.1。我将其创建为自定义插件。我的页面将结果返回为“失败”,尝试了 2 个不同的页面标题并且都返回“失败”,这告诉我它没有在函数中获取页面标题(位置)并且函数返回 else 失败。

    $locations = array(
    array(
        'location'  => 'About',
        'telephone' => '0121 34838383',
        'email'     => 'example@example.com'
    )
);

function telephone_shortcode() {
    global $locations;
    $title = get_the_title();
    $key = array_search($title, array_column($locations, 'location'));
    if ($key)
        return $locations[$key]['telephone'];
    else
        return 'fail';
}
add_shortcode('telephone', 'telephone_shortcode');

[电话] - 返回“失败”

【问题讨论】:

    标签: php wordpress


    【解决方案1】:

    array_search 如果要搜索的元素是数组中的第一个元素,则返回 0。 0 == false in php (look up "truthy values in php") 将if语句中的检查改为

    if($key !== false)
    

    其他一切都可以保持不变。使用 !== 告诉 php 检查值是否完全匹配。

    【讨论】:

      【解决方案2】:

      对于这个配置当你只有一页“关于”这个结果:

      array_search($title, array_column($locations, 'location')); 
      

      为 0。当您签入时:

      if ($key)
      

      对于“如果”,$key 参数等于 false(因为它的值为零)。使这个函数像这样:

      function telephone_shortcode() {
          global $locations;
          $title = get_the_title();
          $key = array_search($title, array_column($locations, 'location'));
          if (false !== $key)
              return $locations[$key]['telephone'];
          else
              return 'fail';
      }
      

      一切都开始工作了。对于教育阅读 PHP Dock:http://php.net/manual/en/language.types.boolean.php#language.types.boolean.casting

      【讨论】:

        猜你喜欢
        • 2013-08-05
        • 1970-01-01
        • 2014-10-22
        • 1970-01-01
        • 1970-01-01
        • 2011-12-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多