新自我与新静态

2024-01-08

我正在将 PHP 5.3 库转换为在 PHP 5.2 上工作。阻碍我的主要事情是使用后期静态绑定,例如return new static($options);,如果我将其转换为return new self($options)我会得到相同的结果吗?

有什么区别new self and new static?


我会得到相同的结果吗?

并不真地。不过,我不知道 PHP 5.2 的解决方法。

有什么区别new self and new static?

self指的是同一个类,其中new关键字实际上是写的。

static,在 PHP 5.3 的最新静态绑定中,指的是层次结构中您调用该方法的任何类。

在下面的示例中,B这两个方法都继承自A. The self调用必然是A因为它定义在A第一个方法的实现,而static绑定到被调用的类(另请参见get_called_class() http://php.net/manual/en/function.get-called-class.php).

class A {
    public static function get_self() {
        return new self();
    }

    public static function get_static() {
        return new static();
    }
}

class B extends A {}

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

新自我与新静态 的相关文章

  • PHP 中的encodeURI() ?

    PHP 中是否有一些不编码的encodeURI 函数 我现在用这个 function encodeURI url http php net manual en function rawurlencode php https develope
  • PHP 共享标头而不使用服务器端脚本?

    到目前为止我总是通过 PHP 解决简单的问题 您有一个包含页眉 菜单 页脚和内容字段的网站 每个页面的页眉 菜单和页脚通常是相同的 在没有 PHP 或任何其他服务器端语言的情况下 如何使页眉 菜单和页脚数据仅存在于一个文件中 例如 您不会有
  • 使用 file_get_content 发布数据

    我已经做了一些关于如何使用的研究file get content与帖子 我也读过this one https stackoverflow com questions 2445276 how to post data in php using
  • 为什么这评估为 true

    为什么这评估结果为真
  • 使用 MYSQL 将 h:mm pm/am 时间格式插入数据库

    我正在尝试将以 h mm am pm 格式写入的时间插入到存储为标准 DATETIME 格式 hh mm ss 的数据库中 但我不知道如何将发布的时间转换为标准格式所以数据库会接受它 这是我到目前为止一直在尝试的 title POST in
  • if/else 简写来定义变量

    我很难理解 if else 的 php 简写是如何描述的here https stackoverflow com questions 20233207 php if shorthand and echo in one line possib
  • 如何将变量插入 PHP 数组?

    我在网上查了一些答案 但都不是很准确 我希望能够做到这一点 id result id info array id Example echo info 0 这有可能吗 您需要的是 不推荐 info array id Example varia
  • 更改 Woocommerce 中“我的帐户”页面上的标题

    我见过大量有关如何使用 WooCommerce 我的帐户仪表板重新排序 更改导航和页面的示例 但我一生都无法弄清楚如何更改每个部分的主要标题 我的帐户 订单 下载 地址等 我已经搜索过模板 但没有任何乐趣 我尝试使用条件 php 注释来回显
  • Laravel Auth:attempt() 不会持久登录

    我在网上找到了许多有类似问题的资源 但似乎没有一个解决方案可以解决我的问题 当我使用以下代码登录用户时 一切看起来都很好 email Input get email password Input get password if Auth a
  • 在 PHP 中包含 PHP 文件

    我有一个网站 它运行 PHP if 语句来根据附加文件的类型 即 Jpg Txt MP4 显示内容 所以我显示 TXT 文件的代码是 if post attachment txt display attachment div class d
  • 尝试使用 php 发送 POST 请求,无论我做什么,我都会收到“HTTP ERROR 500”

    为了发出 HTTP 请求 有人建议我尝试使用 PHP 并给了我一段代码 url https example com dashboard api data array to gt PHONE NUMBER from gt SENDER ID
  • 如何检测字符串中的非 ASCII 字符?

    如果我有一个 PHP 字符串 如何以有效的方式确定它是否至少包含一个非 ASCII 字符 我所说的非 ASCII 字符是指不属于该表的任何字符 http www asciitable com http www asciitable com
  • 使用 PHP Selenium Webdriver 单击下拉菜单中的选项?

    我正在使用 PHP Selenium Webdriver 包装器Facebook https github com facebook php webdriver 任何人都可以给我一个如何单击或从选择下拉菜单中选择选项的示例吗 我已经尝试过这
  • 在 PHP 中比较两个对象的最快方法是什么?

    假设我有一个对象 在本例中为 User 对象 并且我希望能够使用单独的类来跟踪更改 用户对象不必以任何方式改变它的行为才能发生这种情况 因此 我的单独的类创建它的 干净 副本 将其存储在本地某个位置 然后可以将 User 对象与原始版本进行
  • 编辑 HTACCESS 文件以防止直接访问特定文件夹中的特定文件

    我试图阻止直接访问子文件夹中的特定文件 我意识到这个论坛上有很多描述类似问题的主题 但是 我的似乎有点尴尬 由于我已经存在 HTACCESS 文件 这是文件的文件路径 www example com PRINCIPAL PROJECTS m
  • 重写 URL,将 ID 替换为查询字符串中的标题

    我对 mod rewrite 很陌生 但我做了一些搜索 但找不到这个问题的答案 我有一个网站 它只有一个 PHP 页面 根据查询字符串中传递给它的 ID 提供数十页内容 我想重写 URL 以便此 ID消失并替换为从数据库中提取的页面标题 例
  • Codeigniter - 出现 404 Not Found 错误

    我们在 godaddy 有两个托管套餐 我们的实时网站使用以下 htaccess 文件运行良好 无需在 url 中使用 index php 即可访问网站 RewriteEngine On RewriteCond REQUEST FILENA
  • 如何在 phalcon 框架中同时连接多个数据库在模型类中同时使用两个而不仅仅是一个

    在我的代码中我有两个数据库ABC and XYZ 我想在同一模型中使用两个数据库 而不是 phalcon 中的解决方案是什么 如何为此实现多个数据库连接 one
  • phpActiveRecord 日期时间格式不正确

    当尝试使用 phpActiveRecord 在表中创建记录时 出现以下错误 Invalid datetime format 1292 Incorrect datetime value 2013 06 20 11 59 08 PDT for
  • 从字符串中获取数字

    我有一个字符串 例如 lorem 110 ipusm 我想获取 110 我已经尝试过这个 preg match all 0 9 string ret 但这正在返回 Array 0 gt 1 1 gt 1 2 gt 0 我想要这样的东西 Ar

随机推荐

  • 在命令行上获取 git-commit-ids

    跑步时git commit fixup beefca7e或者当在提交消息中引用先前的提交时 我必须在笨拙的工作流程中使用鼠标 我使用bash 打开一个新的终端选项卡 窗口 窗格 git log oneline graph 扫描列表以查找相关
  • 如何增加UIProgressView的高度

    我正在创造UIProgressView from nib 我想增加它的高度 但它固定为 9 对于iPad我需要增加它的高度 怎样才能做到呢 使用 CGAffineTransform 更改尺寸 CGAffineTransform transf
  • 哪个先出现——finally 还是 catch 块?

    考虑以下测试用例 public class Main static int a 0 public static void main String args try test System out println test2 catch Ex
  • 获取 og:image 元属性的最佳方法是什么[重复]

    这个问题在这里已经有答案了 我正在尝试在我的网站中显示 rss feed 链接 一切顺利 但需要很长时间才能获得og image财产通过使用file get contents 方法 还有其他方法可以获取元标记属性吗 Python 有助于更快
  • 如何将 JSONObject 转换为自定义 Java 类?

    在Java中 使用 json simple https code google com p json simple 我已经成功解析了使用 JSON stringify 在 JavaScript 中创建的 JSON 字符串 它看起来像这样 t
  • 所有 SuppressWarnings 值? [复制]

    这个问题在这里已经有答案了 如果有一个包含可以与 java 中的 SuppressWarnings 一起使用的所有值的列表 那就太好了 如果这些值取决于编译器 可以说 netbeans 中的 ant 那么 ant 不应该提供所有支持值的完整
  • 执行 expo build:ios 时 Apple Developer Portal 中的身份验证失败

    我正在尝试自动配置通过 Gitlab CI 使用 Expo 构建 iOS 应用程序 这是我正在使用的命令 expo login u expo user p expo pass expo build ios non interactive a
  • JSF MVC 框架中的 MVC 是什么组件?

    JSF MVC框架中谁是模型 视图和控制器 这取决于观点 双关语 在总体架构图中 您自己的 JSF 代码是V M 业务领域 服务层 例如EJB JPA DAO V 您的 JSF 代码 C FacesServlet 在开发人员图中 架构V又可
  • 为什么 ASCII 表中大写字母位于小写字母之前?

    在我的一次面试中 面试官问我为什么ASCII表中大写字母在小写字母之前 我在google com上搜索但没有找到任何结果 有人能给我答案吗 多谢 我只是猜测 但我想这是因为最早的字符集根本没有小写字母 Baudot 电报码只有 5 位 CD
  • 从图像文件夹加载数组 - xcode

    我在将图像从文件加载到数组中时遇到一些问题 我使用了我在这里找到的问题的组合 但我没有想法 我对 Objective C 很陌生 对其余的都生疏了 我的 viewDidLoad 只是调用我的 showPics 方法 并且为了测试目的 我让
  • 如何在map函数中使用useEffect?

    我在 Firebase 中有两个表 Vouchers 和 ClaimedVouchers 我正在尝试显示未出现在 ClaimedVouchers 表中的优惠券 因此 我有一个查询获取所有优惠券 然后另一个查询检查它们是否已被认领 如果已认领
  • docker数据量与挂载的主机目录

    我们可以在docker中拥有一个数据卷 docker run v path to data in container name test container debian docker inspect test container Moun
  • 如何结合 constexpr 和矢量化代码?

    我正在为 x64 和 neon 开发 C 内在包装器 我希望我的函数是 constexpr 我的动机类似于Constexpr 和 SSE 内在函数 https stackoverflow com questions 51880079 con
  • 如何让 foo.somedomain.com 由 appengine 上的 myapp.appspot.com/foo 处理

    这就是我想要实现的目标 http foo somedomain com http foo somedomain com被处理http myapp appspot com foo http myapp appspot com foo 谷歌应用
  • Python 值错误:没有足够的值来解压

    代码中出现以下错误 不确定这意味着什么或我做错了什么 只是尝试将三个列表值初始化为空集合 nba nfl mlb ValueError not enough values to unpack expected 3 got 0 问题是 左侧值
  • Nokogiri 支持哪个版本的 xpath?

    我找不到 Nokogiri 支持的 xpath 版本的官方声明 有人可以帮我吗 事实上 我想提取一些具有以指定子字符串开头的属性的元素 例如 我想获得所有Book元素具有category属性以字符开头C 如何使用 nokogiri 做到这一
  • 确定 R 中的嵌套级别?

    有没有一种简单的方法 即函数 来确定列表中的嵌套级别 我知道有str可以用来获取此信息 但有没有什么东西可以简单地返回结果呢 我可以使用这样的函数来获取所有级别的名称 递归 吗 一个小的递归函数可以为你做到这一点 depth lt func
  • 找不到已连接的设备。模拟器启动失败:无法通过提供的索引或标识符解析指定的连接设备。

    我正在学习 NativeScript 并且 跑步时tns platform add android我收到以下错误 我按照这个步骤 以管理员身份运行命令提示符 powershell NoProfile ExecutionPolicy unre
  • 如何在 React Redux 应用程序中使用装饰器?

    我正在使用 React Redux 创建简单的应用程序 我想使用装饰器在我的组件中注入一些方法 我在其他项目中看到了类似的代码 import React Component from react import connect from re
  • 新自我与新静态

    我正在将 PHP 5 3 库转换为在 PHP 5 2 上工作 阻碍我的主要事情是使用后期静态绑定 例如return new static options 如果我将其转换为return new self options 我会得到相同的结果吗