class hw
{public static function hi(){return 'Hello World';}
}
echo hw::hi();//Output:Hellp Worldclass hw2
{public function hi(){return 'Hello Wrold';}
}
echo hw2::hi();//Output:Hellp World

从上例看出,使用了static和不适用static属性以后都可以直接使用::方法从外面直接调用。但是为了效率和其他方面因素,还是建议使用static来限制。

static类内部调用方法

class foo
{
private static function c()
{
return 'abcde';
}
public static function a()
{
echo self::c();
}
public static function b()
{
echo $this->c();
}
public function  e()
{
echo self::c();
}
}
foo::a();//Output:abcde
foo::b();//Output:Fatal error: Using $this when not in object context in
foo::e();//Output:abcef

使用了static关键字来限制的方法必须使用self::在本类内部引用。

static属性

class foo
{public static $a;public static function a(){self::$a = 'abcd';}
}
foo::a();//Output:abcde
echo foo::$a;

static继承与使用

class foo
{public static $a;public static function a(){return 'abcde';}
}class soo extends foo
{public static function a(){echo '12345';}
}soo::a();//Output:12345

static的继承与普通类的继承方法一样,并没有太大区别。

class foo
{public static $a;public static function a(){return 'abcde';}
}class soo extends foo
{public static function a(){echo parent::a();}
}soo::a();//Output:12345

只是使用的时候有写区别,必须是parent::方法来引用父类的方法,并且不能直接self::来使用的方法,不然不会有输出:

class foo
{public static $a;public static function a(){return 'abcd';}
}class soo extends foo
{public static  function aa(){echo self::a();}
}
soo::a();  

PHP静态方法和属性相关推荐

  1. 类的实例方法静态方法类方法属性方法属性

    目录: 分类 实例方法 静态方法 类方法 属性方法 属性 分类: 按照调用方式可以分为3种,实例方法.静态方法.和类方法 实例方法 实例方法只能通过实例对象调用,不能通过类进行调用.实例方法再定义时候 ...

  2. 静态方法和属性可以被继承吗?

    结论:静态方法和属性可以被继承,但是不能被重写. 我们将结论延伸一下: 我们知道,类的是由成员变量和方法组成的,成员变量代表类的属性,而方法则代表类的行为. 而具体根据静态与否,可以分为 1.静态的成 ...

  3. 向js中添加静态方法与属性方法

    前言 略 静态方法 if (!Date.diffDays) {Date.diffDays = function(s1, s2) {return Date.valueOf2(s1).diffDaysOf ...

  4. C# 静态方法和属性 图书管理

    运行效果 添加4本书后: 点击"统计"后,输出书名以及价格: 代码 using System; using System.Collections.Generic; using Sy ...

  5. Python类方法、实例方法、静态方法和属性方法详解

    静态方法(可调类变量.可被实例调用.可被类调用) 1.用 @staticmethod 装饰的不带 self 参数的方法叫做静态方法,类的静态方法可以没有参数,可以直接使用类名调用 2.静态方法名义上归 ...

  6. jQuery源码研究分析学习笔记-静态方法和属性(10)

    jQuery源码中定义了一些重要的静态属性和方法,它们是其他模块实现的基础,整体的源码结构如下 //把window.jQuery和winow.$备份到局部变量_jQuery和_$_jQuery = w ...

  7. PHP中的静态属性、静态方法、常量属性

    2019独角兽企业重金招聘Python工程师标准>>> 1.静态属性.静态方法 在面向对象编程中,我们不仅可以通过对象访问方法和属性,还可以通过类来访问它们.这样的方法和属性就是&q ...

  8. 用JAVASCRIPT实现静态对象、静态方法和静态属性

    Javascript语言的面向对象特征很弱,其他面向对象语言在创建类时只要使用关键字static即可指定类为静态类,Javascript没有提供static这样的关键字,要让Javascript也具有 ...

  9. python静态方法,类方法,属性方法,实例方法

    DAY 3. 静态方法,类方法,属性方法,实例方法 有四种方法,实例方法,类方法,静态方法,属性方法 实例方法 实例方法的第一个参数是self,他会指向类的实例化对象,只能被对象调用,如 class ...

最新文章

  1. Python可视化——3D绘图解决方案pyecharts、matplotlib、openpyxl
  2. 自己实现的字符串处理函数
  3. Python编程学习:让函数更加灵活的*args和**kwargs(设计不同数量参数的函数)的简介、使用方法、经典案例之详细攻略
  4. 小孔子文章管理系统V2.0发布测试
  5. linux实现shell,linux
  6. h5 神策埋点_咕咚技术总监唐平麟:神策使我们的数据平台成本降低约 75%,迭代效率提升 2~3 倍...
  7. java图形界面的监听_非专业码农 JAVA学习笔记 用户图形界面设计与实现-所有控件的监听事件...
  8. LoadRunner实战
  9. linux自动断开会话,linux – 从SSH会话断开连接是否会导致程序崩溃?
  10. c语言自动计费工作,c语言编程实现话单计费实例
  11. 浙大PAT甲级题目1081-1100详细代码解答|标准答案|C++语言|浙软机考
  12. [常用工具]深度学习Caffe处理工具
  13. Don’t Just Assume; Look and Answer: Overcoming Priors for Visual Question Answering——论文阅读笔记
  14. 笔记本计算机无线开关在哪里,笔记本电脑无线开关在哪怎么打开关闭
  15. 通过分析周榜前100名专家的博客文章 手把手教你写出爆款文章
  16. java怎么判断文件大小_java判断文件大小
  17. mysql中图片的属性名是啥_数据库属性名
  18. MySQL中concat()、concat_ws()、group_concat()三个函数的使用技巧案例与心得总结
  19. 非视距(非视域)成像(Non-Line-of-Sight,NLOS Imaging) Github开源代码合集
  20. 计算机系统的位的描述性定义,计算机系统中,“位(bit)”的描述性定义是()

热门文章

  1. 什么是推理统计(inferential statistics)?
  2. R语言可视化包ggplot2改变图例(legend)元素的大小实战:包含图例中标题字体、文本字体、标识模块(key)的大小
  3. 机器学习数据预处理之缺失值:样本删除
  4. python手动将机器学习模型保存为json文件
  5. 广东省普通高中计算机会考,广东会考网
  6. python123 https://github.com/jackfrued/Python-100-Days/tree/master/Day01-15
  7. 薛宇 AI boom
  8. 更高效的PacBio长read纠错算法的研究
  9. 深圳大学计算机暑期学校,The First Day-深度学习暑期学校
  10. mysql为什么直接8.0_为什么要迁移到MySQL8.0?