0

在 index.php 中,我需要使用类中的 php 方法包含文件。

我在 index.php 上多次调用该方法,该方法正在执行 include_once 或 require_once。问题是我的第一个包含文件正在创建一些必须在所有文件、其余包含文件以及 index.php 文件中看到的变量。由于我使用一种方法来包含文件,因此每个文件上生成的变量仅在函数内部可见。我不能使用 $this->var_name 也不想让它们成为全局变量。不确定全球是否会有任何好处。我测试了全球,似乎它不起作用。我设法使变量在所有包含的文件中可见,方法是在 include 方法中将它们设为静态,但我也无法使它们在 index.php 文件中可见。

在 index.php 里面我有这个

<html>
<head>
<?php $this->Import($filemane);?>
</head>
<body id="stylef<?php echo $default_font_family ?>"

在 Import 方法中,我包含了 $filename 文件。在 $filename 文件,第一个包含的文件上,我正在创建一些需要在 index.php 文件中作为 $default_font_family 和 $css_file 可见的变量($default_font_family 等),而不是 $this->default_font_family 或 ClassName::var 等等on...我必须将它们保留为 $default_font_family。在 index.php 上,我还为更多文件调用 Import 方法,在这些文件中,我还需要调用在第一个包含文件中定义的变量为 $default_font_family 而不是 $this->$default_font_family。我为此找到的唯一解决方案是在 Import 方法中将变量创建为静态变量,这样我可以在所有包含的文件中将它们视为 $default_font_family 。有没有更简单的方法呢?我现在无法使变量在 index.php 文件中可见。我在 index.php 文件中得到未定义的变量:default_font_family。有什么解决办法吗?

4

1 回答 1

0

如果您在正确的位置使用 global 关键字,那么 globals 应该可以工作。但是我们讨厌全局变量,不是吗?

您可以使用类的静态方法和属性。

class MyClass {
public static $test = false;

public static function getTestVal() {
    return self::$test;
}

    public static function setTestVal($value) {
    self::$test = $value;
}


}

在此之后,您可以通过 MyClass::$test 访问 $test

如果您的 $test 是公开的,则这 2 个函数不是必需的,但如果您想将其设为私有,则可以使用 get 和 set 函数。MyClass::getTestVal(); MyClass::setTestVal(true);

于 2013-04-24T09:10:03.420 回答