在类的函数中设置非字符串变量以获取其他PHP文件类

时间:2017-01-13 12:19:18

标签: php class oop

首先:

在main.php上我可以使用$this->tester1在函数之间共享变量,因此我需要public $ tester1;在我的文件的顶部 - 没有它似乎工作正常?

其次:

如果我从函数中删除$this->tester1 = 'test';并设置{{1},我试图在 other.php 上的 main.php 中设置变量然后在任一文件上public $tester1 to = 'test';都会正常输出。

然而,不是'test',我需要变量为echo $this->tester1;,需要在= get_option( 'my_option' );操作__construct之后调用,因此需要在函数内{ {1}}。

如果我尝试在该函数中设置变量并尝试通过other.php访问它,则表示意外PUBLIC ,如果我从变量中删除public,则输出为未定义属性:MyMainClass :: $ tester1

init的输出是一行文字。

我认为我差点就在这里,但遗漏了一些简单的东西 - 希望如此! :)

以下是我的文件:

main.php

mymainfunction

other.php

get_option

1 个答案:

答案 0 :(得分:-1)

<强> 首先:

如果我没有错,那么没有任何明确可见性关键字的声明被定义为公开。

<强> 其次:

你在另一个方法的中间包括一个类..对我来说似乎很奇怪..&#34; require_once&#34;只需插入调用指令的文件内容即可。所以我的猜测是它弄乱了PHP语法。为了帮助您,您是否会尝试更换&#34; other.php &#34;通过类似的东西:

require_once 'main.php';
class MyOtherClass {

    public function __construct() {
        add_action( 'init', array(&$this, 'myotherfunction' ) );
    }

    public function myotherfunction() {
        $getvariables = new MyMainClass();
        echo 'tester1 is:' . $getvariables->tester1;
    }
}

但说实话,我不知道你要做什么,但这样的事情会更简单,对吗?

<强> main.php

class MyMainClass {
    public $tester1;

    public function __construct() {
        $this->tester1 = 'test1';
    }
}

<强> other.php

require_once 'main.php';
class MyOtherClass {
    public function __construct() {
        $main = new MyMainClass();
        echo 'tester1 is:' . $main->tester1;
    }
}