在 PHP 函数中,有时我发现可以回显某些内容,但无法返回。
例如,这成功地将结果回显到页面上:
function get_page_id( $path ) {
global $mysqli;
if ($stmt = $mysqli->prepare("SELECT state FROM country WHERE city = ?")) {
$stmt->bind_param("s", $city);
$stmt->execute();
$stmt->bind_result($state);
$stmt->fetch();
$stmt->close();
echo $state;
}
}
但是,此函数不返回值:
function get_page_id( $path ) {
global $mysqli;
if ($stmt = $mysqli->prepare("SELECT state FROM country WHERE city = ?")) {
$stmt->bind_param("s", $city);
$stmt->execute();
$stmt->bind_result($state);
$stmt->fetch();
$stmt->close();
return $state;
}
}
是什么让一个值能够被回显但不能被返回?
$state 变量在别处被调用,并作为全局变量包含在内,但未包含在示例中。有趣的是,当我将函数更改为返回 $state.''; 它按照我的预期返回结果,但只有当我附加空字符串时它才会这样做。为什么会这样?