【问题标题】:How to echo variable outside of a function?如何在函数之外回显变量?
【发布时间】:2014-01-15 14:32:20
【问题描述】:

我有这段代码可以回显数组中的值。不过,我希望能够在我的代码中的其他地方回显该变量。我尝试在它周围包装一个函数并回显该函数,但我无法得到任何工作。这是我现在拥有的代码...

function team(){

if ( ($items = field_get_items('entityform', $entityform, 'field_team_members')) ) {
  $values = array_map($items, function($x) { return $x['value']; });
  $comma_separated = implode(', ', $values);

  foreach ($items as $item) { 
    $members = $prefix . $item['safe_value'];        
    $prefix = ', ';
    echo $members; 
  }
}

}

如果我只是简单地执行team();,它什么也不输出,echo team(); 也一样。我在这里做错了什么?

【问题讨论】:

  • 您可以将要回显的变量作为回显值添加到函数中,然后使用return team();,我想这应该可以工作,即使我不确定。
  • $entityform 是通过引用传递的吗?我假设它不是 - 您希望将值传递给 field_get_items,因此 if 失败(或 $items 为空)。
  • 您的数组$items 是否包含元素?
  • 确实如此。如果我把这段代码放在函数之外,它会完美地完成一切。我只需要一种方法可以使此代码在我的页面上多次输出数组中的数据,并且我不想将这块 php 放在我的文档中:)
  • 检查我的更新答案 - 应该可以解决您的问题。

标签: php function


【解决方案1】:

您的team 函数不返回任何内容,这就是echo team(); 不打印任何内容的原因。

有关更多信息,请参阅函数文档:http://php.net/manual/en/functions.returning-values.php

function team(){
    $output = '';
    if ( ($items = field_get_items('entityform', $entityform, 'field_team_members')) ) {
      $values = array_map($items, function($x) { return $x['value']; });
      $comma_separated = implode(', ', $values);

      $prefix = '';
      $members = '';
      foreach ($items as $item) { 
        $members .= $prefix . $item['safe_value'];        
        $prefix = ', ';
      }
      $output = $members;
   }
   return $output;
}

【讨论】:

    【解决方案2】:

    为了澄清我写的评论,我只是创建了一个小脚本:

    <?php
    function team () {
        $string = "hi";
        return $string;
    }
    
    echo team();
    

    【讨论】:

      【解决方案3】:

      除非调用函数,否则函数无法工作,因此您必须以某种方式调用team();,一旦调用,它肯定会显示您尝试回显的内容。除非您强制完全退出该功能,否则上述功能也不会显示任何内容。或者返回一些值。

      【讨论】:

      • 是的,我的错误,我会重新审视它
      猜你喜欢
      • 1970-01-01
      • 2022-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多