PHP 只读属性?

2024-01-07

在使用 PHP 的 DOM 类(DOMNode、DOMEElement 等)时,我注意到它们拥有真正的只读属性。例如,我可以读取 DOMNode 的 $nodeName 属性,但无法写入它(如果我这样做,PHP 会引发致命错误)。

如何在 PHP 中创建自己的只读属性?


你可以这样做:

class Example {
    private $__readOnly = 'hello world';
    function __get($name) {
        if($name === 'readOnly')
            return $this->__readOnly;
        user_error("Invalid property: " . __CLASS__ . "->$name");
    }
    function __set($name, $value) {
        user_error("Can't set property: " . __CLASS__ . "->$name");
    }
}

仅当您真正需要时才使用它 - 它比正常的属性访问慢。对于 PHP,最好采用仅使用 setter 方法从外部更改属性的策略。

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

PHP 只读属性? 的相关文章

  • 如何使用 HTTP POST multipart/form-data 将文件上传到服务器?

    我正在开发 Windows Phone 8 应用程序 我想使用 MIME 类型 multipart form data 和名为 userid SOME ID 的字符串数据的 HTTP POST 请求通过 PHP Web 服务上传 SQLit
  • 从浏览器中删除cookie?

    有什么方法可以指示网络浏览器完全delete一个人的cookie是用PHP设置的吗 我不想expiry或者等待浏览器closed 对于删除 我的意思是实际上不再将其列在 cookie 列表中 尝试这样删除所有 cookie foreach
  • PHP 相对于 ASP.NET 有什么优势? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Laravel 5 清除视图缓存

    我注意到 Laravel 缓存视图存储在 storage framework views 随着时间的推移 他们会吃掉我的空间 我该如何删除它们 有什么命令可以吗 我试过php artisan cache clear 但它并没有清除视图缓存
  • 使用 Sendemail 的 HTML 表单

    我不知道问题出在哪里 mail 工作正常 我已经用一个简单的 php 文件对其进行了测试 但我的表单不发送任何电子邮件 HTML section div class wow fadeIn div div class parallax div
  • Cakephp 在 Bluehost 上安装

    如何设置 Cakephp 才能在 Bluehost 上正常工作 我应该将我的应用程序 cake 和供应商文件夹以及 htaccess 和 index php 文件放在 public html 目录中吗 我按照这里的说明进行操作 http b
  • 更改laravel视图页面中的日期格式[重复]

    这个问题在这里已经有答案了 我想更改从数据库获取的日期格式 现在我得到了 2016 10 01 user gt from date 我想更改 laravel 5 3 中的格式 d m y user gt from date gt forma
  • WordPress Loop:如何将每 3 个帖子包装到一个 div 中?

    我正在尝试这个 div div 但这不起作用 谢谢你 感谢各位的支持 我尝试了两种解决方案 但都不起作用 我最终做到了这
  • 多个提交按钮

    我在 HTML 和 PHP 中遇到多个提交按钮时遇到问题 我尝试为基于 Web 的计算器编写 GUI 代码 这确实很容易 但是 php 中的函数并不那么容易 所以我有这个简单的 GUI 有 6 个提交按钮
  • 尝试跟踪错误,了解为何在 woocommerce 中触发 Webhook 后未发送电子邮件

    我试图了解为什么有时 webhook 似乎会触发 有时在 Woocommerce 中购买后不会触发 有一个自定义插件应该添加到custom topic我的理解是 woocommerce 插件 webhook 添加了以下代码 我将把整个代码放
  • 使困惑。 OO 本质上是命令式的还是多范式的?

    当我通读 stackoverflow 的答案和问题时 我得到的印象是 OO 被划分为本质上是命令式的 但是 OO 不就是一种将代码和数据划分为现实世界对象的方法吗 如果是这样 为什么要放弃其他较低级别的范例来在这样的平台上工作 IOW 默认
  • in_array() 和 array_key_exists() 有什么区别?

    我在这里有疑问 实际上 两者有什么区别in array and array key exists 我试图找到这个 但我仍然很困惑 我可以得到一份样品吗 Thanks in array versus array key exists 不同之处
  • PHP APC 加载 apc.so 时出错

    我最近通过 WHM 面板 Web 主机管理器 在我们的服务器上安装了 PHP APC 安装成功后 我以为一切都很好 然而第二天我注意到我们的 error log 文件变得相当大 经过检查我多次注意到以下行 PHP 警告 PHP 启动 无法加
  • 使用PHP将大文件上传到谷歌云存储

    我正在尝试将大文件从服务器上传到云存储 文件超过 500mb 但 PHP 超时 我尝试查看 Google 客户端库文档 并在 stackoverflow 中进行爬行 但找不到任何可以帮助我的内容 还有有什么办法可以跟踪上传进度吗 这是我目前
  • mysql 触发器与 php 脚本

    我有下一个 mysql 触发器 DELIMITER CREATE TRIGGER Test Insert BEFORE INSERT ON sat clientLocation FOR EACH ROW BEGIN DECLARE cmd
  • Laravel 自定义授权

    我在这里进行登录验证 LoginData Input except array token if Auth attempt LoginData return success 我的表不同 所以这里我更改表名称auth php table gt
  • 解决 php 常见冲突的最佳方法:忽略、修复还是其他?

    我正在尝试在 CentOS 6 上的 PHP 5 3 3 上安装 Soap 模块 来自 webtatic PHP 5 6 当我运行 yum 命令时yum install php56w soap要安装它 我收到以下消息 错误 php56w c
  • 如何使用 mod rewrite / htaccess 创建具有两个或多个参数的友好 URL?

    新手在这里重写Mod 我想在 URL 中传递两个 URL 参数 但采用更友好的格式 如果用户通过 example com blah123 sys 在本例中我应该能够提取 MySQL 记录 blah123 和模式类型 sys 这是例子 URL
  • 从压缩文件中获取图像的高度和宽度

    getNameIndex i 我目前正在使用 zip 存档函数来提取一些图像 我正在寻找一种方法来给出每个单独图像的文件路径 以便我可以使用 getimagesize 来获取宽度和高度 下面是正在使用的方法循环遍历文件 chapterZip
  • npm run dev 和 npm run production 之间的区别

    我对 Laravel 和 vue js 很陌生 请让我知道它们之间有什么区别npm run dev and npm run production 这和环境有关系吗 npm run dev创建源映射并且不会缩小 js css 这使得调试和查找

随机推荐