【发布时间】:2018-06-25 11:17:38
【问题描述】:
我使用的是 PHP 7.2.6
我知道“在函数外部声明的变量具有GLOBAL SCOPE,并且只能在函数外部访问”。
我想将已经声明的全局变量放入我的类中。
我想用这个全局变量初始化类属性。
为此,我尝试了以下代码
<?php
$str = <<<EOD
Example of string
spanning multiple lines
using heredoc syntax.
EOD;
class foo
{
var $foo;
function __construct()
{
$this->foo = $str;
}
}
$foo = new foo();
echo $foo->foo;
?>
我在浏览器中收到以下通知:
Notice: Undefined variable: str in hello.php on line 14
我不明白为什么我会收到此通知。
我没有在任何函数中访问全局变量$str。我在课堂上使用它。
请在这方面帮助我并解释我应该如何使用全局变量来初始化类属性?
【问题讨论】:
-
您是否知道,自 PHP 5.0 发布(即 2004 年左右)以来,
var关键字不应该在类语法中使用?另外,你为什么不在构造函数中将值作为依赖项传递? -
“在函数外部声明的变量具有全局范围,只能在函数外部访问” - 不正确。
-
@Progrock : 此声明来自 w3schools PHP 教程 URL : w3schools.com/php/php_variables.asp
-
很高兴您提供参考。选词不当。如您所见,借助 global 关键字,您可以在函数内访问全局范围内的变量。
标签: php class global-variables