问题在于标题。
答案 0 :(得分:7)
默认情况下它们是非静态的:
public function method() {
}
如果您静态调用它,您将获得E_STRICT
,但我认为您不能轻易强制它只能在实例上调用 - 如果您尝试检查{{1}我认为你会收到一个错误。你可以按照Artefacto的说法做$this
,如果没有设置就抛出异常。
答案 1 :(得分:1)
<?php
class abc() {
public function foo() {
...
}
}
$c = new abc();
$c->foo();
?>
答案 2 :(得分:0)
<?php
class abc() {
public function foo() {
if (!isset($this)) {
throw new Exception('Method is non-static.');
exit();
}
}
}
$c = new abc();
$c->foo();
?>
未经测试。