OOP中静态函数有什么用?

它与其他功能有何区别?

解决方法:

作为一个非常简单,有点人为的例子:

class Foo {

protected $bar = null;

protected $baz = null;

public function __construct($bar, $baz) {

$this->bar = $bar;

$this->baz = $baz;

}

public static function instantiateFromArray(array $data) {

return new self($data['bar'], $data['baz']);

}

}

$foo = new Foo('bar', 'baz');

// or

$foo = Foo::instantiateFromArray(array('bar' => 42, 'baz' => 'nine'));

在这种情况下,静态函数用作替代构造函数,允许您从数据数组而不是单独的参数构造对象.

通常,静态函数提供对象周围的功能而无需实例化它.有很多用途.至少,从未实例化的完全静态类可用于将函数和相关数据捆绑在一起,这本身使代码更清晰.这就是它们与普通函数的区别:普通函数不能保存“外部”数据(不使用全局变量,你不想这样做),静态类方法可以将数据保存在静态类属性中.

标签:php,oop,static-methods

来源: https://codeday.me/bug/20190721/1495643.html

php静态函数作用,php – OOP中静态函数有什么用?相关推荐

  1. 【转载】字段符号在ABAP OOP中的应用

    字段符号在ABAP OOP中的应用 字段符号是ABAP中类似于指针的一种应用,字段符号并不保存数据,其仅仅指向数据内存地址.ABAP的字段符号可以较为方便灵活地访问数据,字段符号使用尖括号" ...

  2. S.O.L.I.D 是面向对象设计(OOD)和面向对象编程(OOP)中的几个重要编码原则

    注:以下图片均来自<如何向妻子解释OOD>译文链接:http://www.cnblogs.com/niyw/archive/2011/01/25/1940603.html <How ...

  3. c语言中的除号什么作用,c语言中除号用什么表示

    前言继承是OOP设计中的重要概念.在C++语言中,派生类继承基类有三种继承方式:私有继承(private).保护继承(protected)和公有继承(public).一.继承规则继承是C++中的重要特 ...

  4. html网页在指定位置嵌入表格,网页制作中表格的主要作用 网页制作中插入表格怎么调整位置...

    在网页设计中,表格有什么重要作用 1.当需要提交所有数据时,可以提交整个100个表,如果不使用表,可以逐个提交. 2.表格设计简洁美观,方形,与网页的设计非常一致. 3.网站其实是一个大版本的表格,数 ...

  5. php中mvc控制器作用,理解PHP中的MVC编程之控制器

    简单来讲,控制器的作用就是接受请求.它使用获取的方法,在这里是通过URI,载入一个功能模块来刷新或者提交一个表述层.控制器将使用$_GET自动全局变量来判断载入哪一个模块. 一个请求的例子,看起来像这 ...

  6. 过程中存根的作用有_模温机的作用 模压过程中模温机的作用有哪些?

    模温机又叫模具温度控制机,最初应用在注塑模具的控温行业.后来随着机械行业的发展应用越来越广泛,现在模温机一般分水温机.油温机控制的温度可以达到正负0.1度.模温机主要用于塑胶,注塑,挤出等工业,它能精 ...

  7. 计算机算法对程序设计的作用,计算机编程中数学算法的优化策略

    李钰 摘要:在计算机编程中,合理地运用数学算法所拥有的优势不但可以完好地针对所拥有的问题进行总结分类归纳,还可以将其归纳作为基础从而进行针对性的统一计算,并且能够将非常复杂的问题进行整体的简化并且将其 ...

  8. preg_relace_callback不起作用匿名函数不启作用替换字符串中的所有图片

    遇到这样的一个需求,即替换新闻正文中的所有图片,将其图片地址补充为完整的地址. 刚开始的时候,采用匿名函数的方法可以使用,但有一个问题,好像是php的匿名函数5.4以前的版本支持的并不好. 然后在内部 ...

  9. python装饰器作用-理解python中的装饰器

    一 什么是装饰器? 正如其名,装饰器的作用是为已经存在的对象增加额外功能(装饰),由此可使已有函数在无需代码改动的情况下增加额外功能:装饰器的本质是嵌套的函数且返回函数对象,即闭包.有关闭包的概念,可 ...

最新文章

  1. PyTorch入门学习(二):Autogard之自动求梯度
  2. Python中的小细节
  3. 《强化学习周刊》第29期:Atari 深度强化学习的研究综述、金融强化学习的最新进展...
  4. 《LeetCode力扣练习》第64题 最小路径和 Java
  5. 使用EditPlus打造一个Python IDE
  6. 搭建Linux0.11系统环境
  7. Python基础学习----参数和返回值
  8. 标志位鼠标Java_检查标志位java
  9. 算法 - 二分查找(非递归实现二分查找)
  10. 1042: 筛法求素数
  11. Vue-cli项目中路由的基础用法,以及路由嵌套
  12. typeof需要注意的内容
  13. input[type=radio]自定义样式
  14. 【CV学习笔记】ROI与泛洪填充
  15. gTunnel:一个基于Golang的TCP隧道
  16. Java入门级基础教学(史上最详细的整合)
  17. 帆软报表更新到服务器控件展示不出来_帆软报表问题汇总
  18. MC9S12 RTI 时钟的设置
  19. 三元锂电池和磷酸铁锂电池的区别
  20. 数据可视化笔记1 数据可视化简介(简史、分类、功能、目标)

热门文章

  1. 20个安全可靠的免费数据源,各领域数据任你挑
  2. 判断用户是否存在再进行新增_MySQL用户行为分析
  3. 17电大计算机网考模拟题,2017年电大 201717统考电大计算机应用基础网考试题.doc...
  4. kubernetes实战篇之创建密钥自动拉取私服镜像
  5. 20175221曾祥杰 实验四《Android程序设计》
  6. Linux命令之sftp - 安全文件传输命令行工具
  7. 定义任务打印gradle下载的jar包位置
  8. session的生命周期
  9. Javascript中字符串输出html的动态链接
  10. malloc,free,new,delete解析(原)