使用全局数组时implode()函数的问题

时间:2016-06-28 22:07:36

标签: php arrays

我有以下代码:

<?php
    $atributos = array("id","attr1","attr2","attr4");
    function dinamico()
    {
       $stringData = implode(",",$atributos);
       echo $stringData;
    } 
?>

它给出了这个:

  

警告:implode():传递的参数无效

如果我在函数内部声明这个数组,它可以工作但不能用它。

注意:我需要在外面声明它,因为我太经常使用这个数组了。

1 个答案:

答案 0 :(得分:1)

为避免使用global,可以将数组作为参数传递给函数。

<?php

function dinamico($atributos)  // add a parameter here
{
   $stringData = implode(",",$atributos);
   echo $stringData;
}

$atributos = array("id","attr1","attr2","attr4");  // declare the array outside the function

dinamico($atributos);  // pass the array to the function when you call it

这样做的好处而不是在你的函数中使用global $atributos;(这也可以),它允许你的函数自包含而不是强制它取决于在其范围之外具有某个名称的变量的存在。