PHP:在函数中调用对象时不定义变量?[duplicate]

uxhixvfz  于 2022-12-21  发布在  PHP
关注(0)|答案(1)|浏览(146)
    • 此问题在此处已有答案**:

PHP global variable is undefined inside a function even if global keyword is used(2个答案)
4天前关闭。
我从下面的代码中得到了**"Undefine variable"**。
这是index.php中的所有代码

<?php
include "globals.classes.php";
$anObj = new Globals();
logout();

function logout() {
    echo $anObj->getName(); //Warning: Undefined variable $anObj
    exit();
}
?>

我知道在参数中传递$anObj是可行的,
但是有没有可能在不传递参数的情况下使它工作呢?
我想这样调用一个函数。
注销();
不是这个。
注销($anObj);
非常感谢你的帮助

nwlls2ji

nwlls2ji1#

这是因为$anObj超出了作用域。您需要将logout()设置为Globals()的成员并调用它:

<?php
include "globals.classes.php";
$anObj = new Globals();
$anObj->logout();

// In your class Global() you'll do something like this
class Globals {
   function getName() {}

   function logout() {
    echo $this->getName();
    exit();
   }
}
?>

另一个解决方案可能是这样的:

<?php
include "globals.classes.php";
$anObj = new Globals();
echo $anObj->getName();
logout()

function logout() {
    exit();
}

在这种情况下,您将不需要logout(),但我猜您可能希望做一些事情,而不仅仅是exit()

相关问题