PHP 方法链接混乱

2024-04-08

我最近接触了方法链接,并且不确定我在这里所做的是否非法,或者我做错了。我有一个数据库类,例如:

    class Database
    {
    private $connection;
    private $resultset, $last_query, $current_row;

    function __construct()
    {
        $this->connect();
    }

    public function connect()
    {
        // Connect to the database
    }

    public function query($query)
    {
        $this->last_query = $query;
        $this->resultset = mysql_query($query, $this->connection);
    }

    public function fetchObject()
    {
        $this->current_row = mysql_fetch_object($this->resultset);
        return $this->current_row;
    }
}

我尝试像这样使用它:

$db->query("SELECT * FROM users WHERE name='JimmyP'")->fetchObject();

我也尝试过

$db->fetchObject()->query("SELECT * FROM users WHERE name='JimmyP'");

但我收到错误:“调用非对象上的成员函数 fetchObject()”

有人可以向我解释一下我在这里做错了什么,因为它与使用方法链接有关。谢谢。


In query(),你需要返回$this否则当函数返回时没有任何东西可以链接它

public function query($query)
{
   $this->last_query = $query;
   $this->resultset = mysql_query($query, $this->connection);
   return $this;  // <- here
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP 方法链接混乱 的相关文章

随机推荐

  • Jquery Multiselect:如何知道选择/取消选择哪个值

    我有多选下拉菜单 每当有选择或取消选择时 我都需要获取该值 我正在使用更改事件 但很难确定选择 取消选择了哪个选项 all options var all multiple each function i selected all i se
  • 如何在 C# 中附加 xml 文件?

    我正在为一个简单进程添加跟踪 以进行审计 我将其构建为 exe 并在调度程序中设置为每 10 分钟运行一次 我想让应用程序将结果输出到 xml 文件中 如果文件存在 则打开并向其追加数据 如果不存在 我想创建一个新的 xml 文件 该文件将
  • C/C++ 中的动态位向量

    我正在寻找一个可以使用的现成的 C 或 C 动态位向量 不幸的是 由于各种原因 我目前无法使用 BoostT 库 std bitvector 看起来很有希望 但它是模板化的 所以我无法动态设置位向量的长度 有人可以建议吗 谢谢 您不必仅仅为
  • 安装SSDT(SQL Server数据工具)时出错

    我在安装 SQL Server Data Tools for Visual Studio 2017 过程中遇到问题 我收到以下错误 已翻译 The requested meta file operation is not supported
  • SwiftUI:两个并排列表和一个导航视图出现意外行为

    我的屏幕有两个List并排 在一个NavigationView 布局渲染正确 我可以独立滚动两个列表 问题是 当我滚动第一个列表时 它位于导航栏后面 而没有触发对其应用背景颜色的效果 下面的 gif 展示了正在发生的事情 这是我用于此视图的
  • request.getSession() 在 sendRedirect() 之后创建新会话

    我们正在开发旅行应用程序 通过这个航班 可以预订酒店 巴士票 它是基于产品的应用程序 我们有近 25 个客户 3 个客户正在使用 其余仍在开发中 我们为所有客户维护一台服务器 一台服务器 应用程序 多个客户端是我的应用程序中的伟大成就 但问
  • 使用 jq 将 JSON 对象转换为 Prometheus 指标格式

    考虑一个 JSON 对象 例如 foo 42 baz 12 bar label1 value1 12 34 建造者jq https github com stedolan jq使用一些数据源 实际的键名称及其数量可能会有所不同 但结果将始终
  • HAL_Delay() 陷入无限循环

    我被 HAL Delay 函数困住了 当我调用此函数 HAL Delay 时 控制陷入无限循环 在寻找问题的过程中 我发现了这个 http www openstm32 org forumthread2145 threadId2146 htt
  • 在Python中的同一个图上绘制多个位置的年度数据[重复]

    这个问题在这里已经有答案了 我有几个站 20 年的数据框 我想以某种方式绘制它 x 轴是年份 y 轴是观测值 线条的颜色显示位置 station year observations 0 3939 2000 0 346518 1 3939 2
  • 通过 UDF 获取 Google 搜索第一个结果[重复]

    这个问题在这里已经有答案了 Santosh 对以下问题有一个很棒的答案 vba 代码 link https stackoverflow com questions 17495644 using vba in excel to google
  • 将 .NET 事件公开给 COM?

    我一直在尝试向 VBA 客户端公开并触发事件 到目前为止 在 VBA 客户端 事件已公开 并且我看到方法事件处理方法已添加到我的模块类中 但是 VBA 事件处理方法不会触发 由于某种原因 调试时事件为空 同步修改我的代码也没有帮助 作为记录
  • 文件锁如何工作?

    我一直在尝试使用FileLock获得对文件的独占访问权限 以便 删除它 重命名它 写信给它 因为在 Windows 上 至少 您似乎无法删除 重命名或写入已在使用的文件 我写的代码看起来像这样 import java io File imp
  • Spring security 已登录用户的重定向问题

    在使用我的基于 GWT 的 Web 应用程序实现 Spring Security 时 我找到 一切都按预期正常工作 除了以下事实 我打开了 login jsp 并给出了有效的用户登录凭据 提交后 成功重定向到主页 现在 当我在地址栏中编辑
  • 电子关闭按钮不起作用

    我正在尝试使用 Electron 以前称为 Atom Shell 创建一个应用程序 该应用程序包装了 AngularJS 应用程序 并与在 Node js 中创建的端点交互以编辑和保存 HTML 内容 我能够毫无问题地创建应用程序 当我尝试
  • glEnableClientState 和 glEnableVertexAttribArray

    后者是否贬低前者 我正在编写希望在着色器 2 0 硬件上工作的代码 但我想使用更新的编程约定 例如 VAO 所以我一直在使用glVertexAttribPointer函数而不是glVertexPointer glNormalPointer
  • 强制 ListView 的 onSizeChanged

    我有一个列表视图 它动态分配不同的数据集 这很好用 我还使 fastScrollEnabled 为 true 为了更新sectionIndexer 我需要调用 list setFastScrollEnabled false list set
  • 如何禁用 Jupyter 笔记本会话的密码请求?

    多年来我一直使用以下命令启动 Jupyter Notebook jupyter notebook port 7000 no browser no mathjax 当我尝试在浏览器上打开 jupyter 时 它会要求我输入密码 即使我以前从未
  • 在自动布局世界中正确调整 NSWindow 大小

    我在使用自动布局滚动视图调整垂直窗口大小时遇到 问题 我想要的是 我想尽可能地复制我的应用程序当前的窗口大小调整行为 窗口的宽度是灵活的 但窗口的高度通常应跟踪内容的高度 具体来说 通常 窗口会自动调整其高度以精确调整匹配其内容 2 除外
  • 如何将多个变量从 Excel 文件传递​​到批处理文件

    我目前可以使用以下命令将一个参数从 Excel 文件传递 到批处理文件 filepath C Users agaron Desktop batchmaster batchfiles batchfiletest bat month 然后调用
  • PHP 方法链接混乱

    我最近接触了方法链接 并且不确定我在这里所做的是否非法 或者我做错了 我有一个数据库类 例如 class Database private connection private resultset last query current ro