PHP 5:const 与 static

2024-04-07

在 PHP 5 中,使用和使用有什么区别const and static?

分别什么时候合适?以及起什么作用public, protected and private玩——如果有的话?


在类的上下文中,静态变量位于类范围(而不是对象)范围内,但与 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.

public、protected 和 private 在常量方面是不相关的(它们总是公共的);它们仅对类变量有用,包括静态变量。

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

编辑:重要的是要注意PHP 7.1.0 引入了对指定类常量可见性的支持 http://php.net/manual/en/migration71.new-features.php#migration71.new-features.class-constant-visibility.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP 5:const 与 static 的相关文章

  • Laravel 中只向登录用户显示按钮

    如果我以 John 身份登录 如何才能只显示 John 的红色按钮而不显示 Susan 的红色按钮 测试系统环境 Win10 Laravel5 4 Mysql5 7 19 table class table table responsive
  • 如何在 PHP 中从 IP 地址/国家/地区名称查找时区 ID?

    谁能告诉我 PHP 中是否有任何方法可以从 IP 地址或国家 地区名称获取时区区域 例如 亚洲 加尔各答 描述 我正在尝试根据他 她的国家 地区设置用户时区 我从他的 IP 地址获取用户所在国家 地区 但我需要该国家 地区的时区区域 例如
  • 如何使用 PHPExcel 库从 Excel 获取日期

    我正在尝试使用 PHPExcel 从 Excel 获取日期 但我没有得到日期 我得到的字符串值不是 1970 以来的秒数 我尝试过的代码是 InvDate trim excel gt getActiveSheet gt getCell B
  • post php mysql 的拆分关键字

    我有一个表存储帖子 ID 它的标签如下 Post id Tags 1 keyword1 keyword2 keyword3 我想循环遍历该表中的每一行并执行以下操作 将关键字1 关键字2 关键字3放入新表中 word id word val
  • 根据用户角色将帖子状态更改为待处理

    我有会员网站 用户必须付费才能订阅 当用户订阅时 他的角色变为 成员 现在可以发布到名为 用户配置文件 的自定义帖子类型 我想要做的是将所有已发布帖子的状态更改为该帖子类型中的待处理 例如 如果用户角色更改为 已过期 我尝试了这个 但似乎没
  • 我可以使用 WGET 生成给定 URL 的网站的站点地图吗?

    我需要一个可以抓取网站并以纯文本或类似格式返回所有已抓取页面的列表的脚本 我将把它作为站点地图提交给搜索引擎 我可以使用 WGET 生成网站的站点地图吗 或者有没有一个 PHP 脚本可以做同样的事情 wget spider recursiv
  • 基于mysql表中唯一电子邮件地址的唯一代码?

    我有一个 mysql 表 它将存储用户电子邮件地址 每个地址都是唯一的 并且是主字段 和时间戳 我添加了另一列名为 unique code varchar 64 utf8 unicode ci 我非常感谢您提供的帮助 a 生成5位字母数字代
  • PHP 计算字符串出现次数的最快方法是什么? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 字符串 S 的前缀是 S 的任何前导连续部分 例如 c 和 cod 是字符串 codility 的前缀 为简单起见 我们要求前缀非空 字符串 S
  • 第一个选项为空的选择框

    如何将选择框中的第一个选项设置为空值 我正在从数据库获取数据 我想将选项默认设置为 请选择一个选项 我找到 default gt Please select 不适用于 HTML5 必需属性 这确实有效 listOfValues 1 gt C
  • 创建一个基于简单文本文件的搜索引擎

    我需要尽快创建一个基于简单文本文件的搜索引擎 使用 PHP 基本上它必须读取目录中的文件 删除停止词和无用词 为每个剩余的有用词及其在每个文档中出现的次数建立索引 我猜这个的伪代码是 for each file in directory r
  • 如何从MySQL数据库获取今天/昨天的数据?

    我想从数据库中检索今天的数据 但我不知道该怎么做 我实际上想要获取不是过去 24 小时的数据 我只想获取今天的数据 因此基于实际服务器时间 我还想获取昨天的数据 谁能帮我怎么做 示例代码 SELECT id FROM folk WHERE
  • 带有列标题的php数组到csv的转换

    我想将数组转换为 csv 我能够将关联数组转换为 csv 但无法获取标题 我想要动态地将数字类型日期作为标题 下面是我转换的数组 Array 0 gt Array NUMBER gt 67 TYPE gt Other DATE gt 3 3
  • 如何将自托管 WordPress 和已安装的实时站点插件升级到最新可用版本而不遇到任何麻烦?

    我必须升级正在运行的 WordPress 网站的 WordPress CMS 和一些已安装的插件 并且我想要升级的一些插件之前已被修改以实现某些目标 http easycaptures com fs uploaded 288 9522279
  • 提交前验证表单(比检查空字段更复杂)

    我有一个包含时间输入的表单 具体来说 开放时间和结束时间 当按下提交按钮时 它会转到一个 php 页面 其中这些输入将添加到数据库中 在允许提交表单之前我想检查一些事情 例如 我想确保开始时间早于 小于 结束时间 这是表格 Opens
  • Yii2 Rest - 自定义操作和 OPTIONS 方法

    我在 UsersController 类中执行以下操作 login 路由操作时遇到问题 public function actionLogin data Yii app gt getRequest gt getBodyParams mode
  • 使用 jquery 和 php 测试表单输入是否为 1 或 2 位整数

    我有一个表单 其中有五个字段全部设置为 maxlength 2 基本上 我希望唯一可以输入的值是一位或两位整数 因为在将值存储在数据库中之前对这些字段执行计算 是否有任何 jquery 不允许用户输入不是整数的值 另外 用 jquery 和
  • 依赖注入容器什么时候会变得太大,我该怎么办?

    我们都知道为什么依赖注入很棒因为它使代码耦合更少 更容易测试 并且更容易阅读 然后有些人决定使用依赖注入容器 like pimple http pimple sensiolabs org PHP 可以协助依赖倒置 http en wikip
  • 对文本变量进行数学求和? (例如 5865/100 )

    我有一个变量是 whatever 5865 100 这是一个文本变量 我希望它计算 5865 100 以便我可以将其添加到其他数字并进行计算 Number format 不起作用 因为它只返回 5 865 而我希望它返回 58 65 我可以
  • 在 C++ 中,为什么 const 也可以工作时编译器选择非常量函数? [复制]

    这个问题在这里已经有答案了 例如 假设我有一堂课 class Foo public std string Name m maybe modified true return m name const std string Name cons
  • 如何使用 Mockery 在第 N 次调用模拟方法时抛出异常

    我需要测试我编写的某些代码多次调用另一个类上的方法时的行为 其中一次调用将导致抛出异常 我在用Mockery http docs mockery io模拟可能引发异常的类 因此 就我而言 该方法将被调用三次 我需要它在第二次抛出异常 这是我

随机推荐

  • Google App 脚本在电子表格中查找文本并返回位置索引

    我是谷歌应用程序脚本的新手 我的 JavaScript 也不是很强 但这似乎都不是问题 因为我的代码在第一次运行时可以工作 但当我尝试再次调用它时 它会失败 简而言之 我试图拥有一个可以动态查找给定范围内给定文本的函数 虽然看起来可能有一个
  • R 中的转置和合并列[重复]

    这个问题在这里已经有答案了 对 R 来说相当陌生 我有一个以下格式的数据集 A B C 1 1 1 2 2 2 3 3 3 4 4 4 5 5 5 但我想要这种格式 A 1 A 2 A 3 A 4 A 5 B 1 B 2 B 3 etc S
  • CakePHP 错误:无法配置会话,设置 session.auto_start 失败

    我收到此错误 Error CakeSessionException Unable to configure the session setting session auto start failed 我正在使用 Cakephp 2 2 4
  • iOS应用程序如何设置Core蓝牙广告率?

    我运行 iPad 的 iOS 应用程序广告过于频繁 随后似乎向我的嵌入式蓝牙 LE 设备发送垃圾邮件 该设备正在从 iPad 读取广告数据 如何减慢 iPad 的广告速度 Core Bluetooth 中的广告速率不可设置 没有公共 API
  • 将列表分为两列

    我正在尝试构建一个无序列表 如下所示 Item 1 Item 4 Item 2 Item 5 Item 3 Item 6 我有这个 HTML div class multi column ul li Item 1 li li Item 2
  • 如何从(静态)类中的类创建新的类实例?

    我是 Java 新手 有 C 经验 这就是我想做的 public final class MyClass public class MyRelatedClass public class OtherRandomClass public vo
  • Windows 10 - WAMP 橙色

    我已经在我的 Windows 10 企业计算机上安装了 WAMP 64 位服务器 不过我得到了一个橙色图标 我已经检查了以下内容 Apache gt 服务 启动 恢复服务呈灰色 停止服务呈红色 另外测试端口 80 还给了我 您的端口 80
  • 是否可以在 Handlebars #if 中使用函数?

    我有一个控制器对象 如下所示 MyApp objController Ember ArrayController create init function data data isValid function return data val
  • 使用 ejs 重建 webpack-dev-server

    我使用 webpack dev server 进行以下配置 import webpack from webpack import autoprefixer from autoprefixer import ExtractTextPlugin
  • 数据表 - 对多个列应用相同的函数以创建新的数据表列

    我正在使用 data table 包 我有一个数据表 代表用户在网站上的操作 假设每个用户都可以访问一个网站 并对其执行多项操作 我的原始数据表包含操作 每一行都是一个操作 我想将这些信息聚合到一个新的数据表中 并按用户访问进行分组 每次访
  • 错误:使用 Sass 的 Angular 组件中未定义变量

    我遇到此错误 看起来我没有将变量导入到组件中 但这是我的style scss You can add global styles to this file and also import other style files Foundati
  • 自定义文件中的 AppSettings

    我正在努力处理 NET 2 0 中的配置和设置类 如果以下内容包含在名为的文件中app config
  • SceneKit 修改 3D 对象并导出文件

    在我的应用程序中 我使用 SceneKit Framework 在 SCNView 中显示 3D 对象 并导出修改后的文件 并进行一些小的更改 如颜色 温度等 但在将其导出到文档文件夹后 我得到了原始文件 在这里我可以显示 3D 对象并对其
  • 将 GCC 编译器安装到 Docker 容器上

    我正在尝试将 mono 包安装到 Docker 容器上 但是 mono 需要 git autoconf libtool automake build essential mono devel gettext 包 我遇到的问题是 libtoo
  • 在 Rails ActiveRecord 验证期间更改或更新属性值

    Summary 我正在尝试更改属性的值within一个习俗ActiveModel EachValidator验证器 给出以下原型 def validate each record attribute value 试图设置value thin
  • ldd 输出静态链接到共享库

    我正在尝试创建一个共享库 libddv3djava so 我编译 libddv3djava so 的源代码 如下所示 Programming intellijprojects ddv3dbindingstest src g c Wall W
  • Numpy `ValueError:操作数无法与形状一起广播...` [重复]

    这个问题在这里已经有答案了 我使用 python 2 7 并尝试对从 1 00000000 到 3 0000000008 的一些随机数据进行预测 我的数组中有大约 196 个项目 但出现错误 ValueError operands coul
  • 在结构体中定义宏背后的逻辑是什么?

    正如标题所示 我质疑在结构体中定义宏的原因 我经常在网络编程中看到这种方法 例如以下代码片段 struct sniff tcp u short th sport source port u short th dport destinatio
  • WPF 启动屏幕直到 Windows 结束加载

    我有一个应用程序在窗口加载时消耗大量时间 在 Window load 事件中 我从数据库读取一些控件的状态和名称 我想做一个启动画面 该启动画面将在窗口完全加载后结束 我尝试过这个例子http www codeproject com KB
  • PHP 5:const 与 static

    在 PHP 5 中 使用和使用有什么区别const and static 分别什么时候合适 以及起什么作用public protected and private玩 如果有的话 在类的上下文中 静态变量位于类范围 而不是对象 范围内 但与