【问题标题】:include php file using a function使用函数包含 php 文件
【发布时间】:2013-04-17 17:59:31
【问题描述】:

在 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。 有什么解决办法吗?

【问题讨论】:

    标签: static include global


    【解决方案1】:

    如果您在正确的位置使用 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);

    【讨论】:

    • 主要问题是我不能在任何文件中使用 $this->var 或 ClassName::var ,我必须找到一种方法来查看 php 变量,首先在里面创建的变量包含文件,如 $var 感谢您的想法
    • “他的主要问题是我不能在任何文件中使用 $this->var 或 ClassName::var”为什么?首先包含类文件,你不应该为它创建对象。静态变量是类变量,所以你可以在任何地方使用它。
    猜你喜欢
    • 2015-08-02
    • 2012-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-31
    • 2016-03-08
    • 1970-01-01
    • 2015-03-03
    相关资源
    最近更新 更多