我有这行代码从名为Field
的类名调用buildField方法$field_dictionary[$key] = Field::buildField($key, $request);
在Field类中,这是我的buildField方法
public function buildField($key, $request) {
$field_vocabulary = [];
$image = $_FILES[$key];
$image['tmp_name']['image'] = true;
// Calling this another method from same class
$field = $this->sanitizeFieldRows($image['tmp_name'], $request->post($key . '_name'), $request->post($key . '_description'));
$field_vocabulary['name'] = implode('|', $field->field_1);
$field_vocabulary['description'] = implode('|', $field->field_2);
$field_vocabulary['image'] = implode('|', $field->reference);
return $field_vocabulary;
}
在该代码中,有一行
$field = $this->sanitizeFieldRows($image['tmp_name'], $request->post($key . '_name'), $request->post($key . '_description'));
我正在从同一个班级调用另一个方法。它做了一些我刚刚删除的功能,因为它已经很久了。
public function sanitizeFieldRows($reference, $field_1, $field_2 = null) {
// Some code etc.....
// Outputs an object
return (object) $output;
}
但问题是,我正在调用$this->sanitizeFieldRows($par1,$par2,$par3)
,但它会提示错误说:
Using $this when not in object context in
但是当我做Field::sanitizeFieldRows($par1,$par2,$par3)
它有效时,但这些方法属于同一个对象,但它并不是我调用的静态方法。
这有什么不对吗?
以下是相同的问题:
Using $this when not in object context?
Using $this when not in object context
Using $this when not in object context
PHP using $this when not in object context
Fatal error: Using $this when not in object context
Fatal error: Using $this when not in object context explanation?
答案 0 :(得分:2)
由于buildField是一个静态方法,因此$ this变量在其范围内不可用。
因为静态方法在没有创建对象实例的情况下是可调用的,所以伪变量$ this在声明为static的方法中不可用。