PHP,在类属性上调用静态方法

2023-12-31

我希望将对象存储为类的属性。然后我希望能够通过直接引用该属性来调用该类的静态方法。

考虑以下:

class myModel {
    public static function all()
    {
        return 1;
    }
}

class myClass {
    public $models;

    public function __construct()
    {
        $this->models->myModel = new myModel;
        $results = $this->models->myModel::all();
    }
}

$result = new myClass;

PHP 失败$results = $this->models->myModel::all();

如果我通过将类属性分配给局部变量来修改它,事情就会按预期工作:

$myModel = $this->models->myModel;
$results = $myModel::all();

我想消除将类属性分配给局部变量的需要。

这在 PHP 5.3.x(我正在使用的版本)或更高版本中可能吗?

解决方案应该是可读的,并且代码的用途不应该被混淆。

为了清楚起见,这是工作代码的极大简化。在我发布的示例代码中,将对象存储在类属性中的好处并不明显。


语法会给你的错误是:

解析错误:语法错误,意外的“::”(T_PAAMAYIM_NEKUDOTAYIM)


然而它可以在 PHP 7 中工作,这要归功于统一变量语法 RFC https://wiki.php.net/rfc/uniform_variable_syntax。所有以前的版本都需要中间变量。

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

PHP,在类属性上调用静态方法 的相关文章

  • 将具有子目录的域转发到具有子目录的其他域

    我有一个热爱域名的客户 更喜欢转发域名 其中许多域没有与其关联的网站 它们仅用于营销和转发 我知道如何轻松地将一个域转发到另一个域 但我好奇的是如何将这些域的特定 url 转发到其他特定 url 例如 www site1 com 目录 gt
  • PHP - 如何将图像资源写入文件

    我用了函数imagecopyresampled到裁剪图像 我尝试使用file put contents和 fwrite 将 resized image 写入硬盘上的文件 但所有尝试都失败了 我可以将调整大小的图像写入磁盘而不是使用image
  • 如果遵循 REST 架构,如何访问 codeigniter 中的 URL 参数?

    以下是可用于访问资源的基于 REST 的有效 URL 使用codeigniter 如何访问下面传递的参数1 我在教程中看到了上述内容并设置了我的代码 然而显然 id this gt input gt get id 不起作用 Using th
  • PHP 中的 Europe/London 和 UTC 有区别吗? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我知道 UTC 和 GMT 实际上是
  • 正则表达式将从文本文件中提取句子

    我需要一个正则表达式来从文本文件中提取句子 示例文本 以 2004 年底发生的亚洲海啸灾难为例 对 Google 新闻 http news google com 的查询在一个月内 1 月 17 日 返回了超过 80 000 篇有关该事件的在
  • PHP设置全局环境变量的方法

    我已阅读问题 答案here https stackoverflow com questions 13568191 how to get system environment variables into php while running
  • 是否存在可处理 PRC/.mobi 文件的 PHP 库?

    我正在写一个WordPress 插件 http github com chrisclarke eBook Export Plugin for WordPress以大多数主要电子书格式从选定类别创建电子书 我想支持 MobiPocket 因为
  • 简单搜索:使用 CodeIgniter 将表单变量传递到 URI

    我的每个页面上都有一个搜索表单 如果我使用表单助手 它默认为 POST 我希望搜索词显示在 URI 中 http example com search KEYWORD 我已经在谷歌上搜索了大约一个小时 但没有结果 我只找到了有关如何进行的文
  • php - 未知:第 0 行需要打开失败。laravel 5.6

    我刚刚安装了 laracast flash 并通过 Composer 更新了 nesbot carbon 下载碳时命令发疯了 Cmd界面显示了一会界面上散落的文字和方框 下载完成 做过php artisan serve at localho
  • 如果 Row1 = 值 1,则更新其他行

    我有一个小的 php 脚本 用于访问 mySql 数据库 我想在数据库中插入新记录之前查看该数字 值 1 是否等于数据库中的记录 这也在第 1 行 所以我想 查看传入的电话号码是否等于数据库中的电话号码 如果是这样 则必须保持电话号码相同的
  • 支持通过 OAuth 进行 Facebook/Twitter 身份验证的 CAS 服务器

    我正在寻找一个支持 Facebook Twitter 通过 OAuth 进行单点登录身份验证的 CAS 服务器 我检查过 JASIG CAS 服务器 但它看起来不支持它们 我的 java web 应用程序基于 Spring Security
  • Laravel nova diffForHumans 日期时间

    我对用户有字段last active 我想用 diffForHumans 或显示时间time from now来自 Moment js 我怎样才能做到呢 现在我只使用 DateTime make Activiy last active gt
  • 如何在 PHP 中使用 file_get_contents 获取图像的 MIME 类型

    我需要获取图像的 MIME 类型 但我只有图像的正文file get contents 是否有可能获取 MIME 类型 是的 你可以这样得到它 file info new finfo FILEINFO MIME TYPE mime type
  • 如何使用 jQuery 通过 Ajax 发送复选框数组的值?

    我有一个包含很多表单字段的表单 12 x n 行 每行中的第一个字段 代表产品 是一个类似于以下内容的复选框
  • Laravel 计划命令一旦启动就停止?

    我已经为 laravel 5 1 项目设置了预定命令 它有效 命令已经启动 但愚蠢的是我没有考虑如何停止它 通常您不想停止它 但该命令正在向数据库表中插入近 50 万行 而我只是想确保我可以在不登录服务器的情况下启动它 显然我需要在某个时候
  • 在生产服务器上使用 Subversion 使文件生效的最佳方法是什么?

    目前我已经设置了 subversion 这样当我在 Eclipse PDT 中进行更改时 我可以提交更改 它们将保存在 home administrator 中项目文件 该文件具有 subversion 推荐的 branches tags
  • Paypal IPN 发送“待处理”并以“多币种”为理由?

    我正在使用 Paypal IPN 从我的网站收款 该网站目前仅处于开发阶段 因此我建立了一个沙盒网站进行测试 并且我已经通过在英国注册的测试帐户非常成功地以英镑货币 我的居住国货币 进行付款 但是 我希望该网站能够检测访问者的原籍国并允许他
  • 使用 Laravel 4 验证多个文件上传

    如何在 Laravel 4 中验证上传文件的数组 我已将其设置为允许多个文件 并且已测试这些文件是否存在于 Input file files 数组中 但如何验证每个文件呢 这是我尝试过的 notesData array date gt In
  • PHP MySql 百分比

    我的问题是关于百分比 我不是专家 所以我会尽力以更好的方式进行解释 我的 mysql 服务器中有一个表 假设有 700 条记录 如下所示 Name country language Birth Lucy UK EN 1980 Mari Ca
  • PHP 如何判断用户是否按下了 Enter 键或 Submit 按钮?

    我遇到的问题是我在一个表单中有多个提交输入 每个提交输入都有不同的值 我更愿意将它们保留为提交 Whenever the user presses Enter it is as though the topmost submit input

随机推荐

  • Python Plotly:向具有多个子图的散点图添加水平线

    我有一个在 Plotly dash 上运行的散点图 这是代码 import dash import dash core components as dcc import dash html components as html import
  • Gridview 在 Windows Phone 8.1 中不水平滚动

    Gridview 在 Windows Phone 应用程序中不水平滚动 而是垂直滚动 我只是将 Windows 8 1 应用程序的代码复制粘贴到 Windows Phone 8 1 但它是垂直滚动的 这是xaml代码
  • 如何使用 SQLAlchemy for Scrapy 创建 pg_trgm 索引?

    我正在使用 Scrapy 从网络论坛中抓取数据 我使用 SQLAlchemy 将此数据存储在 PostgreSQL 数据库中 表和列创建得很好 但是 我无法让 SQLAlchemy 在其中一列上创建索引 我正在尝试使用 gin 创建一个三元
  • 负载测试软件[关闭]

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

    我有一个从服务器获取并作为数据接收的视频 我试图将原始数据覆盖到 URL 中 以便我可以使用它来实例化 AVPlayerItem 并在手机上播放视频 但是 当我打印 videoDataString 时 此代码返回 nil 如果我打印 vid
  • 如何读取二进制数作为输入?

    有没有办法让用户在C或C 中输入二进制数 如果我们写类似的东西 int a 0b1010 std cout lt lt a lt lt std endl 然后输出结果为 10 当使用适当的编译器扩展时 但是当我们尝试写时 int n std
  • 序列化 swing/awt 组件

    我正在尝试序列化 JPanel 但每次都会收到此错误 java io WriteAbortedException writing aborted java io NotSerializableException javax swing Gr
  • 爬行亚马逊时出现问题,元素无法滚动到视图中

    我在亚马逊上抓取页面时遇到问题 我尝试过使用 执行JS脚本 动作链 显式等待 似乎什么都不起作用 一切都会引发一个异常或错误或另一个 基本脚本 ff create webdriver instance ff get https www am
  • 在网络浏览器中使用 JavaScript 读取文件流

    在网络浏览器中 我想计算本地文件系统中一个大文件的 sha1 校验和 而不将其发送到服务器 File API http www w3 org TR FileAPI支持从本地磁盘读取文件 但我猜它会读取整个文件并将其全部放入内存中 如果文件大
  • 使用已安装的 xCon 进行越狱检测

    我对检测 iOS 越狱有疑问 我使用了一些东西来检测它 它们工作正常 但是当我安装 xCon 时 我的应用程序不再检测越狱 我使用了以下技术 检查cydia是否存在 检查 Cydia 应用方案 检查沙箱外的写入情况 检查符号链接是否存在 检
  • SWIG:未定义类型映射

    我有一个 C 类 我正在尝试使用 SWIG 为 Python 包装该类 我在尝试包装以数组作为输入的函数之一时遇到问题 这是头文件 class dyndiff data t private double H 3 double GAMMA d
  • Hilt 在没有构造函数参数的情况下注入 ViewModel

    使用新的依赖注入库Hilt 如何注入一些类ViewModel没有构造函数参数和ViewModelFactory 是否可以 Like in Fragment 我们只使用 AndroidEntryPoint and Inject 如何在没有构造
  • 如何在 Batik SVG 库中使用自定义字体?

    我正在开发一个为衣服创建模板的 Java 程序 用户输入他们想要在衣服上看到的单词 系统会创建一个 PDF 模板 为了创建模板 我以编程方式创建了一个 SVG 文档 然后使用 Batik 将 SVG 转码为 PDF 格式 我的客户现在希望能
  • 加载大量数据(40 列,2000 行)时,WPF 网格滚动缓慢且断断续续

    简而言之 当加载大量纯数据时 我们无法从任何类型的 WPF 网格 项目控件获得合理的滚动性能 我们使用 DevExpress WPF 网格创建了一个静态独立原型并将其上传到此处 http jump fm QOTDL http jump fm
  • 数据库模式与数据库表空间?

    当我阅读时正在阅读我的数据库 Schema 是对象的容器 表空间 对象的逻辑存储单元 谁能解释一下它们之间的区别吗 模式是一个命名空间 一个逻辑上的东西 它用于组织names数据库对象 它与数据的存储方式无关 表空间是一个物理事物 它是数据
  • iPhone + 应用内购买测试

    我已经在现有应用程序之一中实现了应用程序内购买 我还创建了 SandBox 帐户来测试它 我已经运行了该应用程序并对其进行了测试 它运行完美 因为 我已经测试过了 通过购买该功能 就意味着我已经购买了该功能 现在 代码发生了变化 我想重新测
  • sqlalchemy 缓存一些查询

    我在一个实时网站上运行这个 当用户登录时 我查询他的个人资料以查看他有多少可用的 积分 积分是通过贝宝购买的 如果一个人购买积分并且付款成功 查询仍然显示 0 积分 即使我在 phpmyadmin 中运行相同的查询它会带来正确的结果 如果我
  • GZIP压缩级别对解压有影响吗

    据我了解 GZIP 是 LZ77 和 Huffman 编码的组合 可以配置 1 9 之间的级别 其中 1 表示最快的压缩 较少压缩 9 表示最慢的压缩方法 最佳压缩 我的问题是 级别的选择only影响压缩过程 或者根据用于压缩的级别 解压缩
  • 角度测试随机中断:“未捕获类型错误:您在预期流的位置提供了‘未定义’。”

    我们有一个中等大小的 Angular 应用程序 目前约有 700 个单元测试 几周前 完美的测试开始出现问题 更奇怪的是 运行测试两次可能会产生不同的结果 即不同的测试可能会失败 在控制台中 我们总是发现错误 未捕获的类型错误 您在需要流的
  • PHP,在类属性上调用静态方法

    我希望将对象存储为类的属性 然后我希望能够通过直接引用该属性来调用该类的静态方法 考虑以下 class myModel public static function all return 1 class myClass public mod