索引.php:
<?php
$txt = 'Hello world';
include('display.php');
show();
?>
显示.php:
<?php
//This works
echo($txt);
//This doesn't
function show(){
echo($txt);
}
?>
如何让函数中的变量显示?
这是一个范围问题。全局命名空间中的变量在函数内部是不可用的,除非你明确地使它们如此。有三种方法可以做到这一点:
将它们作为参数传递(推荐)
function show($txt){
使用global
关键字(强烈不推荐)
function show(){
global $txt
使用$GLOBALS
超全局(强烈不推荐)
function show(){
$txt = $GLOBALS['txt'];
如果要访问函数内部的全局变量,则必须使用global
声明:
function show() {
global $txt;
echo $txt;
}
它在包含文件中的事实是无关紧要的,当函数在同一个文件中时,您必须做同样的事情。
但是,将变量作为参数传递,而不是作为全局变量访问它们通常是一个更好的主意。