Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在类中的函数中设置一个非字符串变量,以获取类中的其他PHP文件_Php_Class_Oop - Fatal编程技术网

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

在类中的函数中设置一个非字符串变量,以获取类中的其他PHP文件,php,class,oop,Php,Class,Oop,首先: 在main.php上,我可以使用$this->tester1在函数之间共享变量,因此我需要公共$tester1;在我的文件顶部-没有它似乎可以正常工作 其次: 如果我删除$this->tester1='test',我试图在other.php上的main.php中获取变量集并将public$tester1设置为='test'然后echo$this->tester1都可以正常输出 但是,我需要变量=get_option('my_option'),而不是'test'需要在init操作的\uu构

首先:

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

其次:

如果我删除
$this->tester1='test',我试图在other.php上的main.php中获取变量集并将
public$tester1设置为='test'然后
echo$this->tester1都可以正常输出

但是,我需要变量
=get_option('my_option'),而不是'test'
需要在
init
操作的
\uu构造
之后调用,因此需要在函数
mymain函数

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

get_选项的输出是一行文本

我想我已经差不多做到了,但是错过了一些简单的事情——希望如此!)

这是我的档案:

main.php

class MyMainClass {

    public $tester1;

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

    public function mymainfunction() {
        $this->tester1 = 'test';
        echo $this->tester1;
    }

}
class MyOtherClass {

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

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


}
class MyMainClass {
    public $tester1;

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

class MyMainClass {

    public $tester1;

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

    public function mymainfunction() {
        $this->tester1 = 'test';
        echo $this->tester1;
    }

}
class MyOtherClass {

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

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


}
class MyMainClass {
    public $tester1;

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

若我并没有错的话,并没有任何显式可见性关键字的声明被定义为public

其次:

你在另一个方法的中间包含一个类。我觉得很奇怪。。“require_once”只需插入一个文件的内容,在其中调用指令。所以我的猜测是它的PHP语法混乱了。为了帮助您,您是否尝试将“other.php”替换为以下内容:

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() {
        add_action( 'init', array( &$this, 'mymainfunction' ) );
    }

    public function mymainfunction() {
        $this->tester1 = 'test';
        echo $this->tester1;
    }

}
class MyOtherClass {

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

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


}
class MyMainClass {
    public $tester1;

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

class MyMainClass {

    public $tester1;

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

    public function mymainfunction() {
        $this->tester1 = 'test';
        echo $this->tester1;
    }

}
class MyOtherClass {

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

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


}
class MyMainClass {
    public $tester1;

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

这对字符串有效,但我想将get_选项存储在问题中,我不能在_构造中这样做,只能存储在它在init上调用的函数上。