好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>后端语言>PHP
<tfoot draggable='sEl'></tfoot>

php静态类调用静态方法 php类的静态调用和实例化调用各自的利弊

很多站长朋友们都不太清楚php静态类调用静态方法,今天小编就来给大家整理php静态类调用静态方法,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 php直接用类名调用静态方法会不会触发类的构造函数 2、 php静态方法如何运行后触发某个方法 3、 php 使用静态方法的几个注意事项说明 php直接用类名调用静态方法会不会触发类的构造函数

调用静态方法与触发类的构造函数没有必然关系。但是静态方法可以实例化类本身,这时候会触发构造函数,而且可以传参数。如:

class classname{

    private function __construct($a){

        $this->a = $a;

        exit($this->a);//打印一下

    } 

    public static function staticfun($a){

        new self($a);

    }

}

// use case as follow:

$a = '测试123';

classname::staticfun($a);

php静态方法如何运行后触发某个方法

使用self关键字。

php静态方法不能访问这个类中的普通属性,因为那些属性属于一个对象,但可以访问静态属性,从当前类(不是子类)中访问静态方法或属性,可以使用self关键字,self指向当前类,就像this指向当前对象一样,不能再对象中调用静态方法,静态方法和属性又被称为类方法和类属性,因此不能再对象中使用伪变量this。

php,又称超文本预处理器,是一种通用开源脚本语言。其是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言。

php 使用静态方法的几个注意事项说明

1. 即使类中的方法并未用static声明,但其未使用到可改变的类成员变量,在外部仍可用操作符::来调用;

2. 以静态方式(用::操作符)调用的方法中$this的取值是由调用时的上下文决定的!而不是定义他的类!!

例如以下的代码:

<?php 

class TestClass1 

{ 

  public $normal_v = 'normal_v from TestClass1'; 

  public static $STATIC_V = 'STATIC_V from TestClass1'; 

  public function test_func1() 

  { 

    echo $this->normal_v.'<br />'.self::$STATIC_V; 

  } 

} 

class TestClass2 

{ 

  public $normal_v = 'normal_v from TestClass2'; 

  public static $STATIC_V = 'STATIC_V from TestClass2'; 

  public function test_func2() 

  { 

    TestClass1::test_func1(); 

  } 

} 

$t2 = new TestClass2(); 

$t2->test_func2();

这段代码是输出会是什么呢,我原以为会是normal_v from TestClass1 <br /> STATIC_V from TestClass1,测试发现其实我错了,正确的输出是:

normal_v from TestClass2

STATIC_V from TestClass1

说明:test_func1()虽然是在TestClass1中定义的,但却是在TestClass2中调用的,其内部的$this变量则是由TestClass2决定的!

其实这两个类的关系应该属于"双向关联".

关于php静态类调用静态方法的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于php静态类调用静态方法 php类的静态调用和实例化调用各自的利弊的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did211466
更新时间:2023-05-03   阅读:27次

上一篇: php版本5.2.8 php版本可以随便更换吗

下一篇:php编写函数6 PHP编写函数,输出结果为AAABBC

最新资料更新

  • 1.nginx隐藏.php nginx隐藏ip
  • 2.哈希mapphp 哈希map和哈希table区别
  • 3.php循环处理速度 phpforeach循环
  • 4.iconv函数php iconv函数参数
  • 5.bashphp的简单介绍
  • 6.杭州php前景如何 杭州php培训学校
  • 7.php有关线程问题 php多线程
  • 8.phpapache占有 php apc缓存
  • 9.apexphp辅助 apex wr辅助
  • 10.php变量获取图片 php调用图片
  • 11.php加密数据用js解密 php加密 js解密
  • 12.php时间戳转换字符串 php 时间戳转日期
  • 13.php的如何使用数组if php中数组
  • 14.php文字合到图片 php 图片合成
  • 15.qbapi.php的简单介绍
  • 16.PHP中嵌入script php嵌入html有哪几种方法
  • 17.php消息通知实例的简单介绍
  • 18.php视频教程知乎 php视频项目视频教程
  • 19.php提示重复提交 php api防止重复提交
  • 20.php复杂语法 php基本语法

CopyRight:2016-{hedonghua:year}{hedonghua:sitegs} 备案ICP:湘ICP备09009000号-16 {hedonghua:sitejym}
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2026 「好得很程序员自学网」
[ SiteMap ]