0

索引.php:

<?php
$txt = 'Hello world';
include('display.php');
show();
?>

显示.php:

<?php
//This works
echo($txt);

//This doesn't
function show(){
  echo($txt);
}

?>

如何让函数中的变量显示?

4

2 回答 2

2

这是一个范围问题。全局命名空间中的变量在函数内部是不可用的,除非你明确地使它们如此。有三种方法可以做到这一点:

将它们作为参数传递(推荐)

function show($txt){

使用global关键字(强烈不推荐)

function show(){
    global $txt

使用$GLOBALS超全局(强烈不推荐)

function show(){
    $txt = $GLOBALS['txt'];
于 2013-11-11T02:51:56.677 回答
0

如果要访问函数内部的全局变量,则必须使用global声明:

function show() {
    global $txt;
    echo $txt;
}

它在包含文件中的事实是无关紧要的,当函数在同一个文件中时,您必须做同样的事情。

但是,将变量作为参数传递,而不是作为全局变量访问它们通常是一个更好的主意。

于 2013-11-11T02:53:53.593 回答