首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用函数2中函数1中的数组

使用函数2中函数1中的数组
EN

Stack Overflow用户
提问于 2011-07-24 23:41:22
回答 3查看 1.5K关注 0票数 0

我有一个(简化的)函数,它使用in_array()来检查一个值是否在数组中:

代码语言:javascript
复制
function is($input) {
    $class = array('msie','ie','ie9');
    $is = FALSE;
    if (in_array($input, $class)) {$is = TRUE;}
    return $is;
}

if (is('msie')) 
    echo 'Friends don\'t let friends use IE.';

我想将其分解为两个单独的函数,其中第一个定义数组:

代码语言:javascript
复制
   function myarray() {
        $class = array('msie','ie','ie9');
    }

第二个运行检查--要么是这样:

代码语言:javascript
复制
function is($input) {
    myarray();
    $is = FALSE;
    if (in_array($input, $class)) {$is = TRUE;}
    return $is;
}

或者这个:

代码语言:javascript
复制
function is($input) {
    global $class;
    $is = FALSE;
    if (in_array($input, $class)) {$is = TRUE;}
    return $is;
}

但上述两种情况都会导致此错误:

代码语言:javascript
复制
Warning: in_array() [function.in-array]: Wrong datatype for second argument in /home/vanetten/temp.ryanve.com/PHP/airve.php on line 73

在另一个函数中使用数组的正确方法是什么?数组可以是一个全局变量吗?我该怎么做呢?使用全局变量还是在第二个函数中调用第一个函数更有效。任何帮助都是非常感谢的。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-07-24 23:43:57

从第一个函数返回数组:

代码语言:javascript
复制
function myarray() {
    return array('msie','ie','ie9');
}

function is($input) {
    $array = myarray();
    return in_array($input, $array);
    // or even just
    // return in_array($input, myarray());
}
票数 5
EN

Stack Overflow用户

发布于 2011-07-24 23:43:58

代码语言:javascript
复制
function is($input) {
  $class = myarray();
  $is = false;
  ...
票数 1
EN

Stack Overflow用户

发布于 2011-07-24 23:48:54

最简单的方法(这也否定了全局变量的使用,这是一种糟糕的做法,因为在其他地方使用$class可能会导致意外的行为)

代码语言:javascript
复制
function myarray() {
    return array('msie','ie','ie9');
}

function is($input) {
    $array = myarray();
    $is = FALSE;
    if (in_array($input, $array)) {$is = TRUE;}
    return $is;
}

if (is('msie')) 
    echo 'Friends don\'t let friends use IE.';

在本例中,我们只让myarray()返回所需的数组。在is()中,添加行$array = myarray(),这将从myarray()保存数组,因此它可以从is()作为别名$array使用。然后,只需将$class更改为$array,它就会正常工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6810495

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档