我正在尝试使用在本地范围内创建的变量,而不在全局中分配该变量。看看我的意思:
<?
function foo(){
$bar = inside;
}
foo();
echo $bar; // It will give an error that $bar is not assigned
?>
现在你可能已经理解我正在尝试的东西......?是的我想在没有在全球范围内分配它的情况下回应那个$ bar。
一些编码示例很受尊重。
先谢谢
答案 0 :(得分:2)
使用返回值。
<?php
function foo(){
$bar = "inside";
return $bar;
}
$bar = foo();
echo $bar;
?>
答案 1 :(得分:1)
唯一可能的方法是使用$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;
答案 2 :(得分:0)
如果您想从外部访问本地变量的内容,那么您有3个选项:
使用全局变量:通常不建议使用,而不是您正在寻找的内容。
返回该变量的值:
<? function foo(){ $bar = inside; } $outisde_bar = foo(); echo $outside_bar; ?>
使用引用的变量作为函数的属性:
<? function foo(&$bar){ $bar = inside; } foo($bar); echo $bar; ?>
这有帮助吗?