是否可以访问变量而不在功能中将“全局”放在它们前面?

时间:2013-02-18 06:10:44

标签: php

我的代码比这复杂得多,但这只是它的正确性:

$string = "wuddup";

function echothis() {
echo $string;
}

echothis();

有一种简单的方法可以在不说global $string的情况下执行此操作吗?

原因是,我有一个检查登录功能,有很多变量,我在函数外面有配置变量......

4 个答案:

答案 0 :(得分:3)

参数发生了什么?

function echothis($str) {
    echo $str;
}

echothis($string);

如果您在管理变量及其范围方面遇到问题,则可能需要重构代码结构。

答案 1 :(得分:1)

只需创建一个类并向其中添加静态变量即可。您可以从任何位置访问它而无需创建类的实例。

class base2 {
public static $var2 = 1;

}

请参阅以下内容

echo base2::$var2;

答案 2 :(得分:0)

你可以让你的函数将变量作为参数或者包含所有这些参数的数组。

$all_variables = array(
  "string" => "wuddup",
  "number" => 6,
  "an_array" => array(1, 3, 4)
);

function example_func($args) {
  // does things
}

example_func($all_variables);

或者,您可以创建一个类并通过$this引用变量。

答案 3 :(得分:0)

您可以将配置变量定义为常量,并在函数内调用它们。