基于范围解析运算符的PHP
我使用scope resolution操作符检查它是如何工作的,当我在浏览器中检查它是否正确打印时,它没有给出任何错误 但当我运行nusphere PhpEd调试器工具时,它给我的错误是 严格标准:不应在第12行的D:\Program\u Files\wamp\www\test\index.php中静态调用非静态方法a::fn 我的名字在这里 但它正确地打印了结果。也许我知道真正的问题是什么,我对PHP类还不熟悉。我在谷歌上试过,但没有找到原因基于范围解析运算符的PHP,php,Php,我使用scope resolution操作符检查它是如何工作的,当我在浏览器中检查它是否正确打印时,它没有给出任何错误 但当我运行nusphere PhpEd调试器工具时,它给我的错误是 严格标准:不应在第12行的D:\Program\u Files\wamp\www\test\index.php中静态调用非静态方法a::fn 我的名字在这里 但它正确地打印了结果。也许我知道真正的问题是什么,我对PHP类还不熟悉。我在谷歌上试过,但没有找到原因 提前感谢您看到的错误非常严重,可能不会显示在您的服
提前感谢您看到的错误非常严重,可能不会显示在您的服务器上。如果您将error_reportingE|u ALL | E|u STRICT设置为error_reportingE|u ALL,您可能会看到该错误 您看到错误的原因是函数fn不是声明为静态的,因此您不必像::fn那样静态地调用它。您可以像这样调用非静态方法:
<?php
class a {
function fn () {
echo "My name here";
}
}
a::fn();
?>
要使函数成为静态函数,请更改方法声明:
$a = new a();
$a->fn();
编辑:显示了一个与上面类似的示例。您看到的错误是E_STRICT,可能不会显示在您的服务器上。如果您将error_reportingE|u ALL | E|u STRICT设置为error_reportingE|u ALL,您可能会看到该错误 您看到错误的原因是函数fn不是声明为静态的,因此您不必像::fn那样静态地调用它。您可以像这样调用非静态方法:
<?php
class a {
function fn () {
echo "My name here";
}
}
a::fn();
?>
要使函数成为静态函数,请更改方法声明:
$a = new a();
$a->fn();
编辑:显示了一个与上面类似的示例。是否需要将其称为静态方法?为什么不试试:
public static function fn() {
// ...
}
这应该行得通^ ^您需要将其称为静态方法吗?为什么不试试:
public static function fn() {
// ...
}
这应该行得通^ ^您需要将其称为静态方法吗?为什么不试试:$a=新a;$->fn;错误报告的不同设置会造成您体验的不同。您需要将其称为静态方法吗?为什么不试试:$a=新a;$->fn;错误报告的不同设置会造成您的体验差异。