我有这个功能:
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'];
Run Code Online (Sandbox Code Playgroud)
这导致$ value成为一个数组.我想从函数外部访问这个数组.我尝试使用上面的最后一行代码(即echo ...)来做到这一点,但这不起作用.我该怎么做?
您需要从函数返回一个值:
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'];
Run Code Online (Sandbox Code Playgroud)
请注意,该函数可能会在各个位置失败,因此您不应总是假设返回值将包含结果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";
}
Run Code Online (Sandbox Code Playgroud)
异常处理是处理错误的另一种方法.