在 PHP 中模拟值类型结构类

2023-12-22

有没有办法在 PHP 中模拟结构类?即一个按值传递而不是按引用传递的类,因此它仍然可以进行类型提示...

如果是这样,可以使用哪些不同的技术?最好的技术是什么?

如果这是可能的,您显然可以为 PHP 创建一个完全类型安全的层,有这样的层吗?有没有人有这方面的经验?


对象始终通过引用传递。让它们作为副本传递的唯一方法是显式使用clone关键字(是的,无处不在)。

我的建议是使用数组,它是值类型,因此总是被复制。由于您可以将它用作关联数组(例如字符串 -> 值),因此它也可能是一个对象。当然,缺点是您不能使用方法(但这就像一个结构,所以您可能对此感到满意)。然而,没有办法强制执行类型安全。

但说实话,考虑到您的所有要求,PHP 似乎不是您喜欢的语言。

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

在 PHP 中模拟值类型结构类 的相关文章

  • XML 和 INI 哪个更快?

    我想知道 XML 是否比 INI 更快 反之亦然 我正在开发一个包含许多文件的网站 这个问题与我的问题有关关于包含许多文件 https stackoverflow com questions 7777522 too many include
  • WooCommerce - 谢谢和“我的帐户”查看订单页面上的自定义通知

    在 WooCommerce 上我有一个自定义字段days manufacture对于具有不同 整数 值的每个产品 我还有这个代码 可以在购物车页面上显示一条消息 其中的最高值是 生产天数 add action woocommerce bef
  • PHP 读取 XML 播客 RSS 源

    好的 我正在为朋友的播客网站创建一个页面 列出他的播客的所有剧集 本质上 我所寻找的只是如何阅读 RSS 提要 解析出节点 并将信息显示在屏幕上 最终 我将创建一个可以播放剧集的播放器 但那是很久以后的事了 这就是我阅读 RSS 源的方式
  • PHP:switch 与 if [重复]

    这个问题在这里已经有答案了 哪种形式更有效率 这个 switch var case 1 break case 2 break 或者这个 if var 1 elseif var 2 在性能方面 性能方面完全无关 As PHPBench htt
  • bash.sh 运行 cron 的权限被拒绝

    如何在这里使用 bash 脚本运行 cron 我做了如下操作 这里有错误 我想知道如何在 ubuntu 中做到这一点 我现在对它感到震惊 bash sh 文件 bin bash cd var www Controller usr bin p
  • 如何在 PHP 中去除字符串中的所有空格? [复制]

    这个问题在这里已经有答案了 我怎么能够strip remove all spaces of a string in PHP 我有一个string like string this is my string 输出应该是 thisismystr
  • 开发中的 Laravel 和视图缓存——无法立即看到变化

    我和一些朋友决定开始一个项目 我们偶然发现了 Laravel 并认为它可能是一个很好的工具 我们开始在本地使用它来开发一些页面 并注意到一些奇怪的事情 当我们用不同的信息更新视图时 大约需要 5 到 10 分钟视图信息才会发生变化 这就像
  • 无法使用 javascript 建立与安全 Websocket 服务器的连接

    我的开发环境是这样的 操作系统 微软Windows 10 PHP 框架 Laravel 8 0 PHP 版本 7 4 Websocket 服务器 cboden ratchet 0 4 3 WAMP 服务器 3 2 0 Apache 2 4
  • 如何用破折号替换所有大写字母,用正则表达式替换所有小写字母?

    如何在 php 中用破折号和小写字母替换所有大写字母 Such as understandRegexBetter to understand regex better 我的 Google fu 和对以下代码的实验并没有让我走得太远 echo
  • 如何使用WAMP登录phpMyAdmin,用户名和密码是什么?

    根 这个词是什么意思php我的管理员 http en wikipedia org wiki PhpMyAdmin 每当我写作时localhost phpmyadmin在地址栏上 我被要求输入用户名和密码 但我不知道它们是什么 我不记得何时何
  • 如何在 jQuery.knob 中添加值后缀

    我有问题jQuery knob http anthonyterrien com knob 我需要添加一个Sufixx至旋钮中的值 例如 我需要一个后缀 数值后 我只是输入数值字段 它会显示 但此时旋钮不会显示状态 它不会显示旋钮状态 但后缀
  • 将视图加载到变量中

    有什么方法可以将 PHP 文件的内容放入变量中吗 我想做这个 msg this gt load gt view some view 但当我这样做时 msg is NULL 是否可以 有可能的 msg this gt load gt view
  • 致命错误:未捕获错误:调用未定义的函数 bcadd()

    安装 eduTrac SIS 并访问 仪表板 后出现此错误 Ubuntu 16 4 PHP 7 0 php7 0 fpm Apache2 Nginx URL 给出错误 500 并显示 nginx error log FastCGI 在 st
  • 从 MySQL 返回结果时的数字顺序

    我的数据库表中有以下类型的标题 Topic 1 blah blah Topic 2 blah blah Topic 3 blah blah Topic 10 blah blah Topic 11 blah blah etc 选择查询将始终返
  • PHP 中 glob() 中的转义空格?

    我在 PHP 中有以下函数 除了名称中带有空格的文件外 该函数运行良好 Good picture jpg例如 这里是 function getphotolist currentalbum photos glob currentalbum J
  • Netbeans (PHP) 中的变量类型提示

    只是好奇 Netbeans 中是否有一种方法可以为常规变量提供类型提示 以便智能感知能够识别它 我知道你可以对类属性 函数参数 返回类型等执行此操作 但我不知道如何对常规变量执行此操作 当您有一个可以返回不同对象类型 如服务定位器 的方法时
  • php 的 SCORM 库 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我们为一位客户开发了电子学习网站 最近他询问需要 SCORM feed 我不知道我的系统是否与 scr
  • Niceedit本地上传图片失败

    我是这样称呼编辑的 new nicEditor buttonList bold italic underline upload iconsPath img nicedit png uploadURI http server com inte
  • 单个返回语句与多个返回语句? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 通过jquery ajax()和serialize()提交html表单

    我想通过 jquery ajax 提交此表单 这是我所做的 但它不起作用 即表单正在提交并刷新页面 但我没有看到响应 即在同一页面上打印数组 HTML

随机推荐

  • 使用 ReverseLayout recyclerview 将项目添加到 Endless Scroll RecyclerView

    在普通的回收器视图中 最新的项目都位于顶部 如果您将项目添加到回收器视图中 它会将现有项目向下推 新项目占据顶部位置 在reverseLayout recyclerview中 最新的项目都位于底部 如果您将项目添加到recyclerview
  • 如何在 Maven 项目中添加 Flight Recorder 启用标志?

    我正要开始使用Java 任务控制 5 3 0 我已经添加了 XX 解锁商业功能 XX FlightRecorder进入我的网络应用程序的 jetty template 然后我启动网络应用程序mvn 码头 运行 但是当我开始的时候飞行记录仪我
  • CSV 文件上传不适用于 Codeigniter

    我正在使用下面的代码上传 csv 文件 它总是说 无效文件错误 我该如何解决这个问题 这是我的表格
  • 运行多个 UI 线程

    跳到底部查看问题 这只是一些额外信息 我正在使用一个组件 GeckoFX 来渲染一些网站 很好 但它只能在 Windows 窗体中使用 因为它必须绑定到可以绘制的 WinForms 对象 因为所有 WinForm 都在同一个线程中运行 所以
  • 角度组件没有被破坏

    在角度应用程序中 每次我路由到新页面时 之前页面的组件都会保留在内存中 它没有被破坏 当我路由回该页面时 它会创建一个新实例 应用程序不是通过 Angular CLI 创建的 它是一个使用 Angular 网站上提供的 webpack 配置
  • javascript字符串解释为对象

    从生产的角度来看可能无关紧要 但我想知道为什么会这样 字符串文字被解释为对象 function fancyCallback callback callback this console log typeof this just to see
  • 替换 CSV 字符串中的值

    我有一个以逗号分隔的产品列表 由于项目列表已替换为新产品项目 我正在尝试使用新产品项目列表修改此 CSV 列表 create table tmp id int identity 1 1 not null plist varchar max
  • 为什么这会导致分段错误?

    我一直在 C 项目中对此进行编码 通常我不会遇到太大的分段错误问题 但我是 C 新手 基本上我正在创建一个指向 IntList 的指针 并调用 prepend 从指针创建一个 IntList 问题是 当调用 prepend 时 它会卡在头文
  • Flexbox 最佳填充

    我有一个基本的 Flexbox 列式布局 其中包含固定宽度容器和固定宽度可变高度元素 for let e of document getElementsByClassName element e style height Math floo
  • 汇编指令“Intel 组”类别源自何处?

    在开发 86 DOS 应用程序的分支期间 lDebug https pushbx org ecm web projects ldebug 我遇到了称为 英特尔组 的指令类别 具体来说 组是指与使用相同 1 或 2 个操作码字节的一组指令相关
  • 双重继承导致元类冲突

    我使用两个 django 包 django mptt 用于实现修改的预序树遍历的实用程序 和 django hvad 模型翻译 我有一个模特班MenuItem我希望它扩展 TranslatableModel 和 MPTTModel 如下所示
  • 我们可以使用 Base R 求出曲线下 95% 的面积吗?

    使用 Base R 我想知道是否可以确定曲线下 95 的面积 表示为posterior below 更具体地说 我想从mode 绿色虚线 朝尾部移动 然后在覆盖 95 的曲线区域时停止 所需的 x 轴值是该 95 区域的限制 如下图所示 p
  • 如何更改 mysql 中已创建的事件

    任何人都可以给我语法来更改已创建的事件 在这里 我使用以下语法创建了一个事件 create event insert on schedule at 2012 10 08 17 09 interval 10 second do insert
  • 将静态私有映射初始化为空

    我有一个static map这是一个private数据成员 如何在实现文件中初始化它 使其初始容器为空 它不是const 重要的是 开始时该容器中没有任何东西 Header class XXX private static std map
  • 为什么 Chrome 不使用元刷新进行重定向

    我使用的应用程序有一个 PL SQL 包 它创建页面并使用函数创建 META 标记 它创建一个带有 META 标记的网页 如下所示 问题是 Chrome 不喜欢 NAME Refresh 属性 它不会重定向页面 尽管它在 IE 和 Fire
  • 获取上传到 Flask 的文件的路径[重复]

    这个问题在这里已经有答案了 我有一个 Python Web 应用程序 为了界面方便 它在 Web 浏览器中本地运行 处理用户选择的文件 并保存处理后的数据 我需要添加在选择文件的同一文件夹中创建新子目录的功能 即 如果文件是path fna
  • 在 SQL 查询中将 int 或 null 转换为布尔值的最佳方法是什么?

    在 SQL 查询中将 int 或 null 转换为布尔值的最佳方法是什么 例如 任何非空值都是TRUE在结果中 任何空值都是FALSE在结果中 据我所知 如果我错了 请纠正我 SQL 中没有文字布尔值的概念 您可以将表达式计算为布尔值 但不
  • ANDROID:无法解析索引 13 处的属性

    gt gt java lang RuntimeException 无法启动活动 ComponentInfo sharedpreferenceex app htc com listview lv sharedpreferenceex app
  • 如何避免“dom”和“webworker”库之间的冲突?

    我将 TypeScript 与 React 结合使用 我想要实现的目标之一是后台同步以实现离线支持 要启用 Service Worker 的类型 我必须包含 WebWorker 库 但它与 DOM 库冲突并产生错误 25 1 Definit
  • 在 PHP 中模拟值类型结构类

    有没有办法在 PHP 中模拟结构类 即一个按值传递而不是按引用传递的类 因此它仍然可以进行类型提示 如果是这样 可以使用哪些不同的技术 最好的技术是什么 如果这是可能的 您显然可以为 PHP 创建一个完全类型安全的层 有这样的层吗 有没有人