全局范围不打印数据

时间:2014-01-24 20:53:28

标签: php global-variables

为什么$ a不能打印?

这是什么,我不想使用return。

function abc () {
    $a = 'abc';
    global $a;
}

abc();
echo $a;

4 个答案:

答案 0 :(得分:1)

之所以没有回应是因为有两件事:

1)您需要在“您希望定义为全局的变量之前声明global”。

2)您还需要调用该功能。

<强>重写:

<?php
function abc()
{
global $a;
$a = 'abc';
}

abc();
echo $a;

有关变量范围的更多信息,请访问PHP.net网站:

答案 1 :(得分:0)

您可以将变量视为:

 echo  $GLOBALS['a'];

请参阅http://php.net/manual/en/language.variables.scope.php

答案 2 :(得分:0)

您可以使用define():

function abc() {
    define("A", "abc");
}
abc();
echo A;

确保调用该功能。我补充说,就在回声之上。

答案 3 :(得分:0)

首先,您必须创建并分配变量。然后在你的函数中描述你想要使用的全局变量。

$a = 'zxc';

function abc() {
    global $a;

    $a = 'abc';
} 

abc();
echo $a;

以这种方式使用golbal并不是一个好主意。我真的不明白为什么我非常想要使用全局变量...

但我认为使用变量指针会更好。

function abc(&$var){
  $var = 'abc';
}

$a = 'zxc';

abc(&$a);
echo $a;

甚至可以更好地创建一个对象,然后使用此对象访问变量