PHP Echo数组外部函数

时间:2011-08-02 15:09:49

标签: php arrays function

我很想知道如何在函数外部回显一个数组,例如,这段代码将其打印出来。但是,如果我只想返回值并将其回显到外面呢?

function myArray() {
    $arr = array('One', 'Two', 'Three', 'four');

    for ($i = 0; $i < count($arr); $i++) {
        echo $arr[$i];
    }
}

myArray();

希望这是有道理的。

7 个答案:

答案 0 :(得分:3)

所以,并不是你想在循环之外回显(),而是你希望可以访问数组中的值。

使用array()函数(实际上是language construct)并仅提供值,PHP将为您“键入”数组。这些键从0开始,可以使用方括号访问,如下所示:

$myArray = array("first", "second", "third");
echo $myArray[0]; // will echo "first"
echo $myArray[1]; // will echo "second"

如果您希望在函数中构建数组,那么您需要了解范围。函数内设置的变量不能在函数外部访问。为了实现这一点,您需要返回数组并捕获该函数调用的返回值:

function myArray() {
  return array("first", "second", "third");
}

// capture the return value of the myArray() function
$arrayToEcho = myArray();

echo $arrayToEcho[0]; // will echo "first"

答案 1 :(得分:1)

因为我喜欢array_walk,这是另一种解决方案,

$arr = array('One', 'Two', 'Three', 'four');
array_walk($arr, 'echo_it');

function echo_it($item) {
    echo "$item ";
}

但不像print

那么简单
print_r(array('One', 'Two', 'Three', 'four'));

implode

echo implode(", ", array('One', 'Two', 'Three', 'four'));

以上所有内容将echo以一种或另一种形式呈现数组内容。这取决于您想要的输出类型,例如逗号分隔,或列表...

答案 2 :(得分:0)

只返回创建的数组

<?php
  function myArray()
  {
      return array('One', 'Two', 'Three', 'four');
  }

  $arr = myArray();
  echo $arr[1];
?>

答案 3 :(得分:0)

试试这个:

function myArray() {

    $arr = array('One', 'Two', 'Three', 'four');
    $output = "";
    for($i=0; $i < count($arr); $i++) {
        $output .= $arr[$i] . "<br />";
    }
    return $output;
}

$theValuesIWant = myArray();
echo $theValuesIWant ;

答案 4 :(得分:0)

我不确定你究竟是在问什么,我认为你的意思是因为$ arr在myArray中声明它是一个局部变量,但你想在myArray函数的一侧使用它,为此你会返回它是这样的:

function myArray() {
    return array('One', 'Two', 'Three', 'four');
}

$array = myArray();

for ($i = 0; $i < count($array); $i++) {
    echo $array[$i];
}

print_r(myArray());

答案 5 :(得分:0)

我不完全确定你要求的是什么。您可以使用print_r或var_dump打印数组,但这通常仅用于调试目的。您还可以创建一个这样的函数,允许您将数组作为参数传递给打印。

function printArray($printArr) {
    $output = "";
    for($i=0; $i < count($printArr); $i++) {
        $output .= $printArr[$i];
    }
    echo $output;
}

$arr = array('One', 'Two', 'Three', 'four');
printArray($arr);

答案 6 :(得分:0)

function myArray() {
    $arr = array('One', 'Two', 'Three', 'four');

    // Here goes whatever you do with $arr

    return $arr;
}

$arr = myArray();
echo $arr[0];

然而,在函数内部引入硬编码值并不总是一个好主意,这就是为什么你可以使用替代方法并在$arr函数之外创建原始数组(myArray())然后通过它通过参考功能。

这样,在$arr函数之外,您在函数中执行的所有操作都将显示myArray()

Passing by reference

$arr = array('One', 'Two', 'Three', 'four');

function myArray(&$arr) { // Note the ampersand sign (&)!
    // Whatever you do with the original array
    $arr[] = 'Five';
}

myArray($arr);
echo $arr[4]; // Will echo "Five"...