我想调用我的构造函数的变量,我如何在PHP中执行此操作?
<div class="c-hero">
<img class="c-hero__image" src="https://snag.gy/mZNKqJ.jpg">
<div class="c-hero__item">
<p class="c-hero__quote">quote</p>
</div>
</div>
我的问题背景:
我有一个包含大量配置的表单。单击保存按钮后,不同的方法会创建PHP文件的不同部分。
该方法使用相同的变量。
如何将此信息发送到不同的方法?
提前多多感谢!
答案 0 :(得分:1)
当您尝试定义变量以使其在类上下文中可全局调用时,您需要使用$this
:
function __constructor() {
$this->temp["var_1"] = $_POST['var_1'];
$this->temp["var_2"] = $_POST['var_2'];
}
定义属性(变量)visibility也是一种很好的做法:
public $temp = array();
function __constructor() {
$this->temp["var_1"] = $_POST['var_1'];
$this->temp["var_2"] = $_POST['var_2'];
}
也是为了从OOP本质中获益,你需要让你的对象是一个独立的对象,可以这么说,
将任何外包变量插入如下参数:
public $temp = array();
function __constructor($data)
{
$this->temp["var_1"] = $data['var_1'];
$this->temp["var_2"] = $data['var_2'];
}
答案 1 :(得分:1)
在面向对象的PHP编程中,在构造函数中使用$this
。此外,您还需要声明要在构造中使用的变量。您在constructor
中也有拼写错误。更改为construct
class MyClass {
var $temp = array();//declare as array
function __construct($postedVariables) {//pass $_POST here
$this->temp["var_1"] = $postedVariables['var_1'];//now this variable can be used throughout this class(Filter this variable)
$this->temp["var_2"] = $postedVariables['var_2'];//now this variable can be used throughout this class(Filter this variable)
}
function firstMethod() {
echo 'output var 1 from contructor';
echo $this->temp["var_1"];
}
function secMethod() {
echo 'output var 2 from contructor';
echo 'test2';
echo $this->temp["var_2"];
}
}
//call your class as:
$myCLass = new MyClass($_POST);//pass your post array