当前位置: 首页 > 面试题库 >

PHP 5:const与静态

朱啸
2023-03-14
问题内容

在PHP 5中,使用const和之间有什么区别static

什么时候合适?和什么样的作用呢publicprotectedprivate游戏-如果有的话?


问题答案:

在类的上下文中,静态变量在类范围(而不是对象)范围内,但是与const不同,它们的值可以更改。

class ClassName {
    static $my_var = 10;  /* defaults to public unless otherwise specified */
    const MY_CONST = 5;
}
echo ClassName::$my_var;   // returns 10
echo ClassName::MY_CONST;  // returns 5
ClassName::$my_var = 20;   // now equals 20
ClassName::MY_CONST = 20;  // error! won't work.

公共,受保护和私有与const无关(它们始终是公共的);它们仅对类变量(包括静态变量)有用。

  • 可以通过ClassName :: $ variable在任何地方访问公共静态变量。
  • 定义类或扩展类可以通过ClassName :: $ variable访问受保护的静态变量。
  • 私有静态变量只能由定义类通过ClassName :: $ variable访问。

编辑:必须注意,PHP 7.1.0引入了对指定类常量的可见性的支持。



 类似资料:
  • 问题内容: 在PHP中,何时使用 以及何时使用 ? 两者之间的主要区别是什么? 问题答案: 从PHP 5.3开始,有两种定义常量的方法:使用关键字或使用函数: 这两种方式之间的根本区别是在编译时定义常量,而在运行时定义常量。这导致了大多数的缺点。的一些缺点是: 不能用于有条件地定义常量。要定义全局常量,必须在最外层范围中使用它: } // but if (…) { define(‘FOO’, ‘B

  • 我们一直强调,最低权限原则(principle of least privilege)是良好软件工程的最基本原则之一。下面介绍这个原则如何应用于对象。 有些对象需要修改,有些不需要。程序员可以用关键字const指定对象不能修改,且修改时会产生语法错误。例如: const Time noon(12,0,0); 声明 Time 类对象 noon 为 const,并将其初始化为中午12时。 软件工程视点

  • 问题内容: 直到几周前,我还以为我知道何时创建字段和方法或。例如,当一个字段(例如另一个类的对象)对于该类的任意数量的对象是唯一的时,应将其设置为。 但是几周后,我读到了有关JVM垃圾收集的信息。 我知道字段永远不会被垃圾收集,并且始终保持在内存中,除非类加载器本身是垃圾收集的。 但是,如果我不创建该字段,至少它将被垃圾回收。 因此,在使字段/方法静态化与否之间似乎有一条 很细的界限 。 有人可以

  • Yos-social-php5 是 Yahoo! Social SDK 的 PHP5 开发包。

  • 问题内容: 我正在使用JUnit编写一些测试用例。我需要初始化一些静态变量,这些变量将用于该类中的所有测试用例。 为此,我可以使用 静态初始化程序块或 静态方法 相互使用有什么好处? 问题答案: 或初始值设定项的语义非常不同。 静态初始化器由JVM而不是JUnit调用。如果在静态初始化程序中引发了异常,则测试框架可能无法捕获并报告该异常。此外,与该方法相比,静态初始化程序的调用时间没有明确定义。

  • 什么时候只能使用其中的一个? 何时可以同时使用和如何选择一个?