我使用下面的代码有一个全局变量进行测试。似乎一个全局变量不能在一个函数内进行比较。
为什么它不在输出中显示'hello world'?
下面是我想要的代码:
<?php
$bool = 1;
function boo() {
if ($bool == 1) {
$bool = 2;
echo 'Hello World';
}
}
?>
当我删除function boo()
,“世界你好”显示。为什么函数不存在时不显示?
我使用下面的代码有一个全局变量进行测试。似乎一个全局变量不能在一个函数内进行比较。
为什么它不在输出中显示'hello world'?
下面是我想要的代码:
<?php
$bool = 1;
function boo() {
if ($bool == 1) {
$bool = 2;
echo 'Hello World';
}
}
?>
当我删除function boo()
,“世界你好”显示。为什么函数不存在时不显示?
看起来像功课,依然:
<?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';
}
}
?>
您实际上并未将bool的值设置为全局值 - 请参阅我的答案以获取正确的解决方案 –
我在那里修正了它:P – Diego
调用你的函数,并通过$bool
作为参数并返回值。
$bool = 1;
$bool = boo($bool);
function boo($bool) {
if ($bool == 1) {
$bool = 2;
echo 'Hello World';
}
return $bool;
}
您实际上并未将bool的值设置为全局值 - 请参阅我的答案以获得正确的解决方案。 –
@OliverAtkinson你是对的!我没有意识到'$ bool'正在更新,我只是认为'Hello World'。 – Tchoupi
使用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';
}
}
即使OP要求,我也不会推荐使用全局变量。 – Mike
用这种方式
$bool = 1;
function boo($bool) {
if ($bool == 1) {
$bool = 2;
echo 'Hello World';
}
}
boo($bool);
你在哪里打电话给你的功能? – dandan78
'$ bool'没有在函数范围中定义。您需要全局访问它,或者更好地将其传递给函数。 –
你从来没有真正调用函数。然后,即使你是,你也不会看到你打印的'Hello Word',因为'$ bool'在函数范围中不存在。 – lafor