[英]Global variable inside class and function PHP
我在读取另一个函数中在一个函数中定义的变量时遇到麻烦。 我有:
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。 谢谢
变量$a
应该是类内的一个属性
您在代码中的任何时候都不会为$a
赋值。
$a
的唯一赋值是在test->aa
方法中,该方法使用不一致的变量,因此即使被调用也永远不会赋给$a
。
你永远不会运行test->aa()
的值赋给a
。
$foo = new test();
$foo->aa();
$ccc = $foo->bb();
在这种情况下, $ccc
仍然为空,因为您是在$foo->bb()
中回显$a
而不是返回它。
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);
尝试这个 :
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);
?>
这是代码试试这个。
<?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);
?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.