我正在尝试使用在本地范围内创建的变量,而不在全局范围内分配该变量。看看我的意思:
<?
function foo(){
$bar = inside;
}
foo();
echo $bar; // It will give an error that $bar is not assigned
?>
现在你可能已经明白我在尝试什么了..?是的,我想回显该 $bar 而不在全局范围内分配它。
一些编码示例很受欢迎。
提前致谢
使用返回值。
<?php
function foo(){
$bar = "inside";
return $bar;
}
$bar = foo();
echo $bar;
?>
唯一可能的方法是使用$GLOBALS
超全局(至少不返回它):
function foo(){
$GLOBALS['bar'] = 'baz';
}
foo();
echo $bar;
否则,您首先要考虑在全局范围内定义它,然后指定您需要使用以下命令访问它global
:
$bar = null;
function foo(){
global $bar;
$bar = 'baz';
}
foo();
echo $bar;
更好的选择是使用范围保留在对象内的对象,并且您仍然可以保留代码的结构和完整性:
class Foo
{
var $bar = null;
function Bar()
{
$this->bar = 'baz';
}
}
$foo = new Foo();
$foo->Bar();
echo $foo->bar;
如果要从外部访问局部变量的内容,则有 3 个选项:
使用全局变量:通常不推荐,也不是您想要的。
返回该变量的值:
<? function foo(){ $bar = inside; } $outisde_bar = foo(); echo $outside_bar; ?>
使用引用变量作为函数的属性:
<? function foo(&$bar){ $bar = inside; } foo($bar); echo $bar; ?>
这有帮助吗?