6

可能重复:
php函数变量范围

我正在使用下面的代码来测试一个全局变量。似乎无法在函数内部比较全局变量。

为什么它没有在输出中显示“hello world”?

下面是我正在尝试的代码:

<?php    
$bool = 1;

function boo() {
    if ($bool == 1) {
        $bool = 2;
        echo 'Hello World';    
    }
}
?> 

当我删除function boo()时,会显示“hello world”。为什么功能存在时不显示?

4

4 回答 4

7

用于global $var访问您的变量

<?php    
$bool = 1;

function boo() {
    global $bool;
    if ($bool == 1) {
        $bool = 2;
        echo 'Hello World';    
    }
}

boo();
?>

或者使用指针的更安全的方法是

function boo(&$bool) {
    if ($bool == 1) {
        $bool = 2;
        echo 'Hello World';
    }
}
于 2012-12-04T17:59:07.343 回答
6

看起来像家庭作业,仍然:

<?php

$bool = 1;

boo();

function boo() {
global $bool;

if ($bool == 1) {
$bool = 2;
echo 'Hello World';

}


}
?> 

或者

<?php

$bool = 1;

boo(&$bool);

function boo(&$bool) {

if ($bool == 1) {
$bool = 2;
echo 'Hello World';

}


}
?> 
于 2012-12-04T17:59:28.407 回答
3

$bool调用你的函数,并作为参数传递并返回值。

$bool = 1;
$bool = boo($bool);

function boo($bool) {

  if ($bool == 1) {
    $bool = 2;
    echo 'Hello World';    
  }

  return $bool;
}
于 2012-12-04T17:58:38.063 回答
0

用这种方式

$bool = 1;
function boo($bool) {

  if ($bool == 1) {
    $bool = 2;
    echo 'Hello World';    
  }
}
boo($bool);
于 2012-12-04T18:00:43.307 回答