OOP 中的静态和动态变量/方法是什么?

2024-05-13

我试图更好地理解 OOP 中的基本概念。 面向对象编程中的静态和动态变量和方法是什么? 例如,使用 $this 与使用双冒号 (::) 之间有什么区别?

$this($this->a_method())

  • 优点: ?。
  • 缺点: ? ...“这个”不是自我记录的,如下所示:$this->method_from_an_extended_class().

双冒号(someclass::a_method())

  • 优点: ?
  • 缺点: ?

“静态”和“动态”并不是正确的描述。

->表示一个实例函数 or 实例数据,这意味着函数或数据具有隐式$this参考。换句话说,您引用的是特定对象中的函数或变量。

::表示一个类函数 or 类变量。这与全局函数或变量非常相似,因为没有隐式的$this参考。该类的所有实例共享该函数或变量。

“动态”将是更准确的描述,例如,PHP 重载 https://www.php.net/__callstatic您可以在其中“动态”创建变量,例如使用魔术方法__get() and __set()(当您尝试访问无法找到的属性时会调用这些方法;您可以重载这些方法以假装所请求的成员存在)。

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

OOP 中的静态和动态变量/方法是什么? 的相关文章

  • 如何显示 PHP 对象

    我有这样的代码 dataRecord1 client gt GetRecord token table filter echo pre print r dataRecord1 echo pre foreach dataRecord1 gt
  • 将字符串的第一个字母大写(前面带有特殊字符) - PHP

    我想将字符串大写 例如 hello 我希望我的函数返回 Hello 我尝试过使用 regex 和 preg match 但没有运气 这是我之前的问题 与此相关 preg match 正在匹配两个字符 而它应该只匹配一个字符 https st
  • php 中 php.ini 的 log_errors 和 error_log

    我正在尝试通过 php ini 更改 php ini 中的设置 我的问题是 当出现错误时 它不会放入文件 error log txt 中 那么我做错了什么 这是我的代码 Settings for php ini ini set sessio
  • 使用 ImapMailbox.php 按日期对 Imap 邮箱进行排序

    我有一个客户支持系统 它会在收到电子邮件时创建电子邮件 我曾经使用后缀和特殊配置来获取电子邮件以添加额外的功能 例如 我想包含从电子邮件发送的附件 系统不会执行此操作 而是创建一封带有主题的电子邮件 因此我可以通过匹配主题来包含附件 我使用
  • PHP 自定义会话处理程序问题 (PHP 7.1)

    我刚刚在计算机上从 PHP 7 0 迁移到 PHP 7 1 当前版本的 WAMP 的全新 全新安装 它似乎破坏了自定义会话处理程序中的某些内容 该处理程序应该将会话保存到数据库而不是使用文件系统 自定义处理程序类是 class db ses
  • 传递给 Illuminate\Routing\Middleware\ThrottleRequests::addHeaders() 的参数 1 必须是以下实例

    我创建了一个新的中间件来检查用户令牌我创建了中间件然后添加到 kernal php 但是当我尝试访问中间件中的 request 时我收到错误 这是我的中间件代码 namespace App Http Middleware use Illum
  • 使用活动目录对 Intranet 站点上的用户进行身份验证

    我建立了一个 内联网 站点 它有自己的登录系统 用户注册为新用户 并使用其上的用户名 密码登录该站点 但是 现在我想扩展它 让 Intranet 站点使用现有的 ActiveDirectory 进行身份验证 这就是我正在寻找的 前进 当用户
  • 我应该在 Symfony 中哪里放置既不是控制器也不是模型的类?

    对于我的应用程序包 我需要一些既不是控制器也不是模型的类 例如 我想要一个scorecard具有诸如 技能 效率 美丽 等成员的类 此外 它可能具有诸如 meanScore 之类的成员方法 getters 这样的类在 Symfony 框架中
  • Google Closure 编译器和 multipart/form-data 不起作用

    我正在向 google 闭包编译器 API 服务发出请求 content file get contents file js url http closure compiler appspot com compile post true p
  • PHP、PDO 和 SQLSRV 对一个 INSERT 语句执行多次

    我已经在 MySQL 和 Apache 服务器上使用 PDO 和 PHP 一段时间了 我最近的任务是将企业的旧 Web 应用程序转换为新设置 旧设置是标准 Linux Web 堆栈 Apache PHP MySQL Filezilla 新设
  • 唯一的图像哈希值即使 EXIF 信息更新也不会改变

    我正在寻找一种方法来为 python 和 php 中的图像创建唯一的哈希值 我考虑过对原始文件使用 md5 和 因为它们可以快速生成 但是当我更新 EXIF 信息 有时时区关闭 时 它会更改总和 并且哈希也会更改 有没有其他方法可以为这些文
  • 如何将路径添加到 Apache PATH 变量?

    我在 apache2 的 custom conf 文件中设置了以下内容 SetEnv PATH PATH opt local lib mysql5 bin this is a test 但是它不起作用 当我打电话时 hey shell ex
  • php - 重定向ajax请求[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 如何在 php wordpress 中重定向 ajax 请求 I tried header Location http redirect
  • PHP 中正确的存储库模式设计?

    前言 我尝试在具有关系数据库的 MVC 架构中使用存储库模式 我最近开始学习 PHP 中的 TDD 并且我意识到我的数据库与应用程序的其余部分耦合得太紧密 我读过有关存储库并使用国际奥委会容器 http laravel com docs 4
  • 将接口转换为其具体实现对象,反之亦然?

    在 C 中 当我有一个接口和几个具体实现时 我可以将接口强制转换为具体类型 还是将具体类型强制转换为接口 这种情况下的规则是什么 Java 和 C 中都允许这两个方向 向下转型需要显式转型 如果对象类型不正确 可能会抛出异常 然而 向上转换
  • MVC 框架中的缓存策略?

    我编写了自己的小型 PHP MVC 框架 现在正在探索 PHP MVC 框架中的缓存策略 我正在考虑可以缓存什么 在哪里以及如何缓存 我的框架是简单的MVC框架 我有前端控制器 它启动应用程序 注册类自动加载 设置 php 运行时指令 最后
  • 如何让php页面从html页面接收ajax post

    我有一个非常简单的表单 其中有一个名字输入字段 我捕获了表单数据 并使用标准 jQuery 发布方法通过 ajax 将其传输到 PHP 页面 但是 我根本无法从 PHP 页面获得任何在服务器端捕获数据的响应 我不确定我做错了什么或缺少什么
  • 访问 PHP 数组对象受保护的属性

    我正在尝试在 Symfony2 中上传多个文件 我正在尝试访问以下请求对象 但无法获取参数属性 如何将文件一一上传 我得到的错误 致命错误 无法访问第 66 行 var www File src Webmuch FileBundle Ent
  • Laravel 5 Eloquent 在多个级别上将关系附加到 JSON

    因此 在模型中包含关系非常容易 例如 class User extends Model protected with roles class Role extends Model protected with permissions 当有对
  • Nginx 安全链接模块不适用于 php 文件,但适用于静态文件

    我在用http nginx org en docs http ngx http secure link module html http nginx org en docs http ngx http secure link module

随机推荐

  • 创建通用数组时出错

    public class TwoBridge implements Piece private HashSet
  • 将 vim 的 vertsplit 字符更改为 │

    我认为这与代码页相关 但询问也无妨 在 windows xp 的 cmd 上 gvim 7 2 如何更改 vertsplit 字符 而不是默认的 它是 因此它是一条完整的线 而不是一条分割线 该字符通常会更改为 set fillchars
  • WCF 是否始终需要我的主机具有管理员权限?

    我正在跟进this http msdn microsoft com en us library ms730935 aspx教程 似乎要在我的应用程序中实现 WCF 它需要以管理员权限运行 我想使用远程处理only同一台机器上的进程之间进行通
  • 如何将值从 android 传递到 php Web 服务并检索它?

    我正在尝试将一个值传递给我的 php web 服务 我已经使用此代码来传递 名称 值 private class MyAsyncTask extends AsyncTask
  • 具有用于角色授权的空间的 AD 组

    我正在尝试获得与 AD 组合作的角色授权 然而 由于它包含空格 它似乎不起作用 我尝试过没有空格的 AD 组 它们工作得很好
  • libicui18n.so.52:无法打开共享对象文件

    我一直在使用 libicu 来检测在 docker ubuntu 内部运行的节点应用程序中的字符集 这是通过模块完成的节点 icu 字符集检测器 https github com mooz node icu charset detector
  • SQL where 连接集必须包含所有值,但可以包含更多值

    我有三张桌子offers sports和连接表offers sports class Offer lt ActiveRecord Base has and belongs to many sports end class Sport lt
  • 在 WSDL 中包含 XSD

    我正在编写一个 wsdl 文件来在未来 SoapUI 中部署模拟服务 但我在包含我的 xsd 文件时遇到问题 XSD File
  • 将位图旋转 90 度

    我有一个1 个 64 位整数 我需要在 8 x 8 区域中旋转 90 度 最好使用直接位操作 我想不出任何方便的算法 例如 这个 0xD000000000000000 110100000000000000000000000000000000
  • 抑制 Rspec 3 的回溯

    我正在使用 rspec 3 2 0 和 capybara 2 4 4 并在我的 spec helper rb 文件中如下所示 config full backtrace false 对于大多数错误 我都会得到回溯 例如 Failure Er
  • 查找所有子字符串的出现和位置

    我正在编写一个程序来解析一些保存为文本文件的数据 我想做的是找到大海捞针中每根针的位置 我已经可以读取文件并确定出现的次数 但我也希望找到索引 string str sub str is string to search sub is th
  • SQL 查询在多用户环境中返回错误值

    一段时间以来 我们在我们的一个客户站点上发现了奇怪的数据完整性问题 经过大量调查后 我们现在已将其隔离为数据库调用 如果两个用户同时调用同一个存储过程 有时一个用户会得到另一个用户的结果 我们设置了一个测试来验证这一点 并且我们有一个循环
  • 将声音图形化地表示为波

    我创建了一个记录和播放声音的应用程序 我正在寻找一种显示简单波形的方法 记录声音的表示 不需要动画 只需一个简单的图表 如果可以选择波的子集也很好 当然更好 也播放该部分 总而言之 我正在寻找什么 一种以图形方式将录制的声音表示为波的方法
  • 无法更改 MS Access 2007 上的数据类型

    我有一个巨大的数据库 800MB 其中包含一个名为 上次修改日期 的字段 目前该字段作为文本数据类型输入 但需要将其更改为日期 时间字段以执行一些查询 我有另一个完全相同的数据库 但其中只有 35MB 的数据 当我更改数据类型时 它工作正常
  • Google App Engine 数据存储写入:如何远程启用/禁用只读模式?

    在阅读备份时GAE 的数据存储 https developers google com appengine docs adminconsole datastoreadmin where 我们强烈建议您在备份或恢复期间将应用程序设置为只读模式
  • MySQL 过去 12 个月的月度销售情况,包括没有销售的月份

    SELECT DATE FORMAT date b AS month SUM total price as total FROM cart WHERE date lt NOW and date gt Date add Now interva
  • 使用 SYS_CONNECT_BY_PATH 的 Oracle 累积计数

    当我尝试对实际数据执行以下查询时 它返回了更多记录数 请帮助解决这个问题 下面是表 DM TEMP SUMMING DVC BY FW 中的实际数据 device count dmc id firmware version cg id im
  • 在 Eclipse 中的调试会话期间记录所有跟踪信息

    我想记录调试会话的每个步骤的所有调试信息 以便稍后处理所有这些数据 例如调用的方法的名称 参数值 所有变量值等 有没有任何选项可以实现此目的 我应该在哪里更改代码才能实现此目的 一件重要的事情 它不是一个 java 程序 这是一个使用 ac
  • 在并行调用中,限制每秒执行次数

    使用 TPL Parallel ForEach 有一种开箱即用的方法来限制每单位时间调用方法的次数 即每秒不超过 50 次调用 这与限制线程数不同 也许有一些简单的技巧可以使这项工作正常进行 一种解决方案是制作以下线程安全版本https s
  • OOP 中的静态和动态变量/方法是什么?

    我试图更好地理解 OOP 中的基本概念 面向对象编程中的静态和动态变量和方法是什么 例如 使用 this 与使用双冒号 之间有什么区别 this this gt a method 优点 缺点 这个 不是自我记录的 如下所示 this gt