使用与 Trait 函数相同名称的 PHP 类

2024-02-06

我有以下代码作为示例。

trait sampletrait{
   function hello(){
      echo "hello from trait";
   }
}

class client{
   use sampletrait;

   function hello(){
      echo "hello from class";
      //From within here, how do I call traits hello() function also?
   }
}

我可以详细说明为什么这是必要的,但我想让这个问题保持简单。由于我的特殊情况,从类客户端扩展并不是这里的答案。

是否可以让一个特征与使用它的类具有相同的函数名称,但除了类函数之外还调用特征函数?

目前它只会使用类函数(因为它似乎覆盖了特征)


你可以这样做:

class client{
   use sampletrait {
       hello as protected sampletrait_hello;
   }

   function hello(){
      $this->sampletrait_hello();
      echo "hello from class";
   }
}

编辑 : 哎呀,忘了 $this-> (感谢 JasonBoss)

编辑2: 刚刚对“重命名”特征函数做了一些研究。

如果您重命名一个函数但不覆盖另一个函数(请参阅示例),则这两个函数都将存在(php 7.1.4):

trait T{
    public function f(){
        echo "T";
    }
}

class C{
    use T {
        f as public f2;
    }
}

$c = new C();
$c->f();
$c->f2();

您只能更改可见性:

trait T{
    public function f(){
        echo "T";
    }
}

class C{
    use T {
        f as protected;
    }
}

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

使用与 Trait 函数相同名称的 PHP 类 的相关文章

  • 正则表达式删除带有数字的单词

    我想删除产品名称中带有数字 参考 或小单词 2 个或更少字符 的单词 但我找不到好的正则表达式 一些例子 链式防回弹ECS 2035 应成为 链式防反弹 指南 35 厘米俄勒冈 Intenz 应该成为 俄勒冈州 Intenz 指南 Tron
  • 随机字体颜色

    我需要用 2 或 3 种随机颜色为文本着色 我如何在 PHP 或 JavaScript 中执行此操作 color str pad sprintf x x x rand 0 255 rand 0 255 rand 0 255 6 rand 0
  • Laravel - LIKE 运算符来搜索加密值

    我正在尝试在 Laravel 应用程序中实现一个搜索模块 可以按名称过滤用户 为了保护用户 name 列行在数据库上加密 我面临的问题是下面的查询总是返回 0 结果 我在搜索数据库之前对搜索输入值进行加密 patients DB selec
  • WP_Query 相同的请求,不同的语法 - 其中之一不起作用

    我有一个运行良好的 WP Query args array post type gt product meta key gt product subtype meta value gt public compare gt 但当我想搜索多个m
  • 用php将数字转换为字母[重复]

    这个问题在这里已经有答案了 可能的重复 在 PHP 中将数字 1 2 3 转换为字符串 一 二 三 https stackoverflow com questions 2112571 converting a number 1 2 3 to
  • PHP MySQLi 多次插入

    我想知道准备好的语句是否与具有多个值的普通 mysql query 一样工作 INSERT INTO table a b VALUES a b c d VS sql db gt prepare INSERT INTO table a b V
  • CodeIgniter 2.1.0 的会话库中是否存在任何已知错误?为什么我会被踢出去? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我正在开发
  • 如果用户登录,则更改引导程序中的导航栏

    我有一个标准菜单 包括 登录 和 创建用户 的选项 我想要的是 当您创建用户或登录整个导航栏菜单来更改 例如 我的用户页面 和 注销 时 我该怎么做 div div
  • 连接到 mysql 服务器(localhost)非常慢

    实际上有点复杂 摘要 与数据库的连接非常慢 页面渲染大约需要 10 秒 但页面上的最后一条语句是一个回显 当页面在 Firefox 中加载时我可以看到它的输出 IE 是相同的 在谷歌浏览器中 只有在加载完成后输出才可见 不同浏览器的加载时间
  • 我想回显 __FILE__ 名称而不带路径。我只想页面名称,例如:index.php

    echo FILE 给我 C EasyPHP DevServer 13 1VC9 data localweb projects FOLDERNAME index php 我只想获取不带路径的文件名 我想单独获取index php 有任何想法
  • 带数组的双美元变量

    我正在尝试使用双美元语法访问数组的第一项 但它无法按照我想要的方式工作
  • .htaccess 在本地主机上给出 500 错误

    我是 MVC 框架的初学者 我正在尝试根据教程创建一个自己的 他们提供的 htaccess 文件包含 RewriteEngine On RewriteCond REQUEST FILENAME d RewriteCond REQUEST F
  • 添加验证码到 Symfony2 登录

    我需要将验证码添加到我的登录页面 我正在使用 GregwarCaptchaBundle 和 FosUserBundle 目前我已经使用以下代码在登录时显示验证码
  • after_or_equal 验证在 laravel 5.2 中不起作用

    我想比较 start date 和 end date 并且 end date 应等于或大于 start date 我正在使用 after or equal 验证 return Validator make data start date g
  • 如何在 symfony 4 注销中重定向到外部网址

    只是想知道 Symfony 4 中是否有一个简单的解决方案 通常用户会注销并返回主页 但是有一个页面会检查用户当前是否在另一个站点上进行了身份验证 如果这是不正确的 我有一个链接可以将用户从我的站点中注销并重定向到外部站点 我在基于 sil
  • 无法在 PHP shell_exec() 中运行“cd”命令

    我最近在我的大学以太网连接上安装了 Apache 设置的笔记本电脑 现在 只要我有 IP 地址或主机名 我可以选择 我就可以从任何地方连接到我的计算机 现在我想创建一个基于 Web 的命令提示符 让我可以从任何设备在笔记本电脑上运行命令 一
  • PHP 生成的 XML 显示无效的 Char 值 27 消息

    我使用 PHP 库生成 XML 如下所示 dom new DOMDocument 1 0 utf 8 执行上述操作会生成一个页面 该页面在输出顶部显示一条消息 此页面包含以下错误 第 16 行第 274505 列错误 PCDATA 无效 C
  • 如何在php中用一行调用两个方法?

    我在 Laravel 中看到在单行中调用多个方法 例如 DB get test gt toJson 我在该类中有一个很酷的类和视图方法 this gt call gt view welcome gt anotherMethod 我还想调用另
  • 帮助将二进制图像数据从 SQL Server 读取到 PHP 中

    我似乎无法找到将二进制数据从 SQL 服务器读取到 PHP 的方法 我正在开发一个项目 需要能够将图像直接存储在 SQL 表中 而不是文件系统上 目前 我一直在使用这样的查询 插入 myTable 文档 选择 从 OPENROWSET BU
  • InvalidArgumentException 与 UnexpectedValueException

    我应该什么时候使用无效参数异常 http www php net manual en class invalidargumentexception php什么时候意外值异常 http www php net manual en class

随机推荐

  • com.sun.faces.config.ConfigureListener 的配置

    我正在审查当前的 JSF 项目 其中web xml配置包含 FacesServlet 配置在 xhtml the com sun faces config ConfigureListener 我正在使用 JSF 2 2 和 Mojarra
  • 控制器未出现在 swagger-ui.html 中

    我使用 Swagger 2 和非 spring boot 我也可以在 Tomcat 上部署我的应用程序并成功运行它 但控制器并没有出现在swagger ui html 只显示带有绿色招摇标题的空白页面 我在这个问题上花了两天时间 你能给我一
  • 具有子例程和函数的 Fortran OpenMP

    免责声明 我很确定这个问题已经在某个地方得到了回答 但我自己和另一个人一直在努力搜索 但没有结果 我有一个看起来像这样的代码 PROGRAM main omp parallel do omp private somestuff shared
  • 手动身份验证时,使用 sessionRegistry 获取登录用户不起作用

    我使用 spring security3 和 spring mvc3 构建一个Web项目 有一个名为index jsp的页面 上面会显示登录用户名和在线用户数 该屏幕的顶部 有2种方式登录系统 从登录页面 使用 j spring secur
  • 如何在 jQuery Mobile 中动态设置“data-collapsed”和“data-theme”?

    我在运行时动态设置 数据主题 和 数据折叠 时遇到问题 我使用了 selector attr data collapsed false and selector attr data theme b 但它不起作用 如何使用 jQuery 或
  • 如何检查 是否成功

    我正在将主题设置添加到我的 js 应用程序中 该应用程序也应该离线工作 所以我必须检查远程样式文件 例如http ajax googleapis com ajax libs jqueryui 1 11 2 themes jquery jqu
  • perl - 从 xml 文件中删除节点

    我有一个 XML 文件 我想读取它 删除一个节点 保存它 我从终端运行 perl perl script pl XML 示例 文件名 xml
  • 使用 d3.js svg ClipPath 不在 Angular 中进行裁剪

    我正在开发一个与以下示例非常相似的图表 http bl ocks org mbostock 1667367 http bl ocks org mbostock 1667367它使用 ClipPath 来剪切区域 以便区域图不会溢出轴 在 A
  • Ruby 中的 Mysql 适配器 ActiveRecord 抛出:“数据包乱序”

    红宝石版本 1 9 1 MySQL版本 5 0 编写的代码是 require rubygems require active record puts 1 class Source lt ActiveRecord Base puts 2 es
  • 从 JSON 嵌套哈希中提取特定字段

    我正在考虑编写一个 Web 应用程序来抓取 API 并以 JSON 形式返回此信息 但是 我只关注一个数字 然后是当前价格 在本示例中为 227 我如何在 Ruby 中访问它 我不知道从哪里开始 我从来没有处理过这样的文字 为了讨论的目的
  • 如何将 json 对象转换为警报框中的字符串? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我想调试我的响应 json 并将其显
  • 向 Angular 4 中的元素添加类

    我试图使用 Angular 4 创建一个图像库 其背后的逻辑是将级联样式表 CSS 类添加到所选图像 该类将在所选 单击的 图像上显示红色边框 这是图片库的 CSS 样式表 我想在我单击的图像上显示红色选择方块 this is a clas
  • 以编程方式旋转 Google 可视化数据表

    我兴奋地这把小提琴 http jsfiddle net asgallant HkjDe 我尝试参考那个小提琴创建相同的类型 我修改后的样本给出在here http jsfiddle net DUn6B 我正在尝试创建一个视图 如下所示 va
  • Python 中的 Selenium PhantomJS 自定义标头

    我想在 python 中向 Selenium PhantomJS 添加 自定义标头 这些是我想添加的标题 headers Accept Accept Encoding gzip deflate sdch Accept Language en
  • 如何检查 R 中的标量?

    我有兴趣识别数字标量 例如 doub lt 3 14 intg lt 8L 我知道这些被视为长度为一的向量 因此 对于任何 R 对象x is is vector x length x 1检查是否正确的方法x是一个标量 length x 1其
  • 使用 Laravel Envoyer 上传特定供应商文件

    我正在尝试使用 Laravel Forge 仅将特定供应商文件上传到我的服务器 原因是因为我编辑了一些依赖项中的代码 现在发生的情况是我网站的某些功能正在破坏 因为当我从 Envoyer 推送到我的服务器时 Envoyer 正在从我的 Gi
  • Python 中阻止 GET 请求的解决方法

    我正在尝试使用 requests 和 beautifulsoup 检索和处理网络搜索的结果 我编写了一些简单的代码来完成这项工作 并且它成功返回 状态 200 但请求的内容只是一条错误消息 对于给您带来的不便 我们深表歉意 但该站点当前不可
  • C 中的移位运算符(<<、>>)是算术运算符还是逻辑运算符?

    在 C 语言中 移位运算符 lt lt gt gt 算术还是逻辑 左移时 算术移位和逻辑移位没有区别 右移时 移位类型取决于被移位的值的类型 作为那些不熟悉差异的读者的背景知识 逻辑 右移 1 位会将所有位向右移动 并用 0 填充最左边的位
  • 在 Perl 中解析时间戳与毫秒

    假设我有一堆时间戳 如 11 05 2010 16 27 26 003 如何在 Perl 中用毫秒解析它们 本质上 我想比较时间戳以查看它们是在特定时间之前还是之后 我尝试使用 Time Local 但似乎 Time Local 只能解析第
  • 使用与 Trait 函数相同名称的 PHP 类

    我有以下代码作为示例 trait sampletrait function hello echo hello from trait class client use sampletrait function hello echo hello