首先:
在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
答案 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;
}
}