• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧
您的位置:首页 > CMS教程 >建站教程 > PHP中静态方法可以访问非静态方法吗

PHP中静态方法可以访问非静态方法吗

作者:站长图库 字体:[增加 减小] 来源:互联网

站长图库向大家介绍了PHP静态方法,PHP访问非静态方法等相关知识,希望对您有所帮助

PHP中静态方法可以访问非静态方法,通过实例化对象,就可以调用对象中的非静态方法;静态方法虽然可以调用非静态方法,但是不能够调用构造方法。


PHP中静态方法可以访问非静态方法吗


php中静态方法可以访问非静态方法吗

如果我们调用了非静态方法会怎么样呢?首先做测试。

<?phpclass test{    function test() {        echo 'it works';    }}test::test();?>

执行以下,返回错误如下:

Fatal error: Non-static method test::test() cannot be called statically in /home/×××/test.phpon line 7 Call Stack: 0.0002 332548 1. {main}() /home/×××/test.php:0

这个时候,可能大家就会认为静态调用非静态方法是行不通的了,但其实,结论下的过早了,因为test()这个方法比较特殊,与类同名,是构造方法。 我们继续测试。

<?phpclass test {    function test() {        echo 'it works';    }    function test2() {        echo 'it works too';    }}test::test2();?>

执行结果:

it works too

这说明,静态调用非静态方法是可行的,但是静态调用构造方法是不可以的。为了验证这个结论,我又做了如下测试:

<?phpclass test{    static function test() {        echo 'it works';    }}test::test();?>

执行的结果如下:

Fatal error: Constructor test::test() cannot be static in /home/xxx/test.php on line 9

构造方法不能声明静态,所以上面的推论正确。

但这个结果的确是很特殊的,因为可能只有PHP可以静态调用非静态方法,我用Java做了实验,如果静态调用非静态方法会报如下错误:

Cannot make a static reference to the non-static method showString() from the type HelloWorldApp

其他语言我没有一一尝试,但这已经足够来说明PHP的特殊之处,关于为什么PHP会有这样的情况我暂时没有找到相关说明。


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • PHP中静态方法可以访问非静态方法吗

相关文章

  • PHP数组去重的5种方法有哪些?
  • wordpress的login.php打不开怎么办
  • dedecms修改摘要、标题、缩略图等字数和大小限制
  • DedeCMS V6 发布!织梦CMS V6 新版上线
  • 微信小程序自定义tabbar组件
  • 如何开启WordPress调试模式(报错提示)
  • PHP实现腾讯短网址生成api接口实例
  • 使用Jquery提交页面上多个表单数据的方法
  • Photoshop快速制作创意的木块字
  • Photoshop制作时尚绚丽的3D立体字教程

文章分类

  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧

最近更新的内容

    • 关于蓝奏网盘部分地区无法下载解决方案
    • 看看Vue中如何封装一个自动化注册全局组件
    • Photoshop绘制立体效果的紫色心形宝石
    • Illustrator使用混合和透明度制作发光按钮
    • Thinkphp5中验证器的使用方法
    • 【网络营销】网络商店的设计
    • 织梦DedeCMS后台文件列表按文件名排序的方法
    • Photoshop制作逼真复古效果的黑胶唱片
    • 带你搞懂uniapp跨域问题(实例详解)
    • css如何实现底部tapbar栏效果

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有