我在另一个函数中读取一个函数中定义的变量时遇到了麻烦。 我有:
global $a;
class test{
function aa($somevar){
switch ($myvar){
case 'value':
global $a;
$a = 15;
break;
}
}
function bb(){
global $a;
echo $a;
}
}
$foo = new test();
$ccc = $foo->bb();
var_dump($ccc);
我得到转储结果为NULL。 感谢名单
答案 0 :(得分:0)
变量$a
在类
答案 1 :(得分:0)
在您的代码中,您没有为$a
分配值。
$a
的唯一分配在test->aa
方法中,该方法使用不一致的变量,因此即使被调用也永远不会分配给$a
。
答案 2 :(得分:0)
您永远不会运行test->aa()
为a
分配值。
$foo = new test();
$foo->aa();
$ccc = $foo->bb();
在这种情况下,$ccc
仍然为空,因为您在$a
回显$foo->bb()
而不是返回它。
function bb() {
global $a;
return $a;
}
我也会远离全局变量并在类的构造上传递变量$ a。例如:
class test {
public $a;
function __construct($a = null) {
// pass initial var to $a if you want
$this->a = $a;
}
function aa($somevar) {
// reassign $a
$this->a = $somevar;
}
}
$foo = new test();
$foo->aa(5);
// or just $foo = new test(5);
var_dump($foo->a);
答案 3 :(得分:0)
试试这个:
class test
{
public $a;
function aa($somevar)
{
switch ($myvar)
{
case 'value':
$this->a = 15;
break;
}
}
function bb()
{
return $this->a;
}
}
$foo = new test();
$ccc = $foo->bb();
var_dump($ccc);
更新:
<?php
class test
{
var $a;
function aa($somevar)
{
switch ($somevar)
{
case 'value':
$this->a = 15;
break;
}
}
function bb()
{
return $this->a;
}
}
$foo = new test();
$foo->aa('value');
$ccc = $foo->bb();
var_dump($ccc);
?>
答案 4 :(得分:0)
这是代码尝试这个..
<?php
global $a;
class test{
function aa($somevar){
switch ($somevar){
case 'value':
global $a;
$a = 15;
break;
}
}
function bb(){
global $a;
echo $a;
return $a;
}
}
$foo = new test();
$foo->aa('value');
$ccc = $foo->bb();
var_dump($ccc);
?>