代码之家  ›  专栏  ›  技术社区  ›  a1anm

初学者PHP问题-从函数访问数据

php
  •  0
  • a1anm  · 技术社区  · 15 年前

    我有这个功能:

    function selectValue($test) {
        $connection = dbConnect(HOST, USERNAME, PASSWORD, DATABASE);
        $query = "SELECT * FROM table where value = '$test'";
        $results = @mysql_query($query, $connection);   
        $value = mysql_fetch_assoc($results);
    }
    
    selectValue('abcde');
    
    echo $value['something'];
    

    这导致$value成为一个数组。我想从函数外部访问这个数组。我试图用上面最后一行代码(即echo…)来完成这项工作,但这行不通。我该怎么做?

    7 回复  |  直到 15 年前
        1
  •  4
  •   Luke    15 年前
    function selectValue($test) {
    $connection = dbConnect(HOST, USERNAME, PASSWORD, DATABASE);
        $query = "SELECT * FROM table where value = '$test'";
        $results = @mysql_query($query, $connection);   
        $value = mysql_fetch_assoc($results);
    return $value;
    }
    
    
    $value = selectValue('abcde');
    
    echo $value['something'];
    
        2
  •  7
  •   Mike    15 年前

    你需要 return a value 从您的职能:

    function selectValue($test) {
        $connection = dbConnect(HOST, USERNAME, PASSWORD, DATABASE);
        $query = "SELECT * FROM pans where value = '$test'";
        $results = @mysql_query($query, $connection);   
        $value = mysql_fetch_assoc($results);
        return $value;
    }
    
    
    $value = selectValue('abcde');
    
    echo $value['something'];
    

    请注意,函数可能在不同的地方失败,因此您不应该总是假定返回值将包含来自 mysql_fetch_assoc .

    实现这一点的一种方法(一种方法是多个方法)是在使用返回值之前对其进行测试:

    function selectValue($test) {
        $value = false;
        $connection = dbConnect(HOST, USERNAME, PASSWORD, DATABASE);
        $query = "SELECT * FROM pans where value = '$test'";
        $results = @mysql_query($query, $connection);   
        $value = mysql_fetch_assoc($results);
        return $value;
    }    
    
    if($value = selectValue('abcde')) {
        echo $value['something'];
    } else {
        echo "Something went wrong.\n";
    }
    

    Exception handling 是处理错误的另一种方法。

        3
  •  2
  •   Sarfraz    15 年前

    return 函数中的关键字:

    function selectValue($test) {
    $connection = dbConnect(HOST, USERNAME, PASSWORD, DATABASE);
        $query = "SELECT * FROM pans where value = '$test'";
        $results = @mysql_query($query, $connection);   
        $value = mysql_fetch_assoc($results);
        return $value; // return the value
    }
    
        4
  •  2
  •   xil3    15 年前

    您可以从函数返回值-这里我为您重写了它:

    function selectValue($test) {
        $connection = dbConnect(HOST, USERNAME, PASSWORD, DATABASE);
        $query = "SELECT * FROM pans where value = '$test'";
        $results = @mysql_query($query, $connection);   
        $value = mysql_fetch_assoc($results);
    
        return $value;
    }
    
    
    $val = selectValue('abcde');
    
    echo $val['something'];
    
        5
  •  0
  •   David Radcliffe    15 年前

    我假设您已经在该函数之外定义了$value?否则,您需要返回它,以便可以在函数外部访问它。

        6
  •  0
  •   helle    15 年前

    返回值

    return $value
    

    或使用 globals . 但是,全球不再是最先进的,不应该被使用。

        7
  •  -2
  •   Simiil    15 年前

    这可能有帮助

    <?php
    $a = 1;
    $b = 2;
    
    function Sum()
    {
        global $a, $b;
    
        $b = $a + $b;
    } 
    
    Sum();
    echo $b;
    ?> 
    
    推荐文章