问题标签 [late-static-binding]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
447 浏览

php - PHP中后期静态绑定的实际例子?

我了解后期静态绑定的工作原理,但我似乎想不出何时使用它。PHP 站点上的示例很好,但没有显示任何实际用法。我只是想知道是否有任何示例说明何时绝对需要 LSB 来解决问题,或者何时它有助于简化可能复杂的代码。

0 投票
1 回答
6582 浏览

php - 如何从父类获取子类名称

我正在尝试在不需要子类上的函数的情况下完成此操作……这可能吗?我有一种感觉不是,但我真的很想确定...

0 投票
1 回答
472 浏览

php - PHP中的后期静态绑定

我正在阅读有关 LSB 功能的 php 手册,我了解它在静态上下文中的工作原理,但在非静态上下文中我不太了解它。手册中的示例是这样的:

输出是这样的:

我不明白B类,A中的私有方法如何继承给B?谁能带我了解这里发生了什么?非常感谢!

0 投票
1 回答
317 浏览

php - PHP后期静态绑定错误

我正在尝试学习如何使用 LSB。我正在尝试将我的常用数据库方法分成class DatabaseObject并将其扩展到将使用它们的所有类。常见的 db 方法是find_by_id(), create(),delete()等。

课程

我得到的错误:

0 投票
2 回答
116 浏览

php - 如何找出以前调用的类?

我有一个包含许多子类的基类,以及一个用于缓存函数结果的通用函数。在缓存函数中,我如何确定调用了哪个子类?

0 投票
2 回答
73 浏览

php - 扩展 PHP 类

我的 PHP 项目中的每个 MySQL 表都有一个单独的类。该类将是这样的:

我对项目中几乎所有的表都使用相同的类,除了我将类名更改为表名。现在您可以看到我在类中使用的函数中使用了“get_class()”,因此 SQL 从类名中获取表名。

由于我在所有类中使用的类中有太多函数,因此我计划使用子类扩展该类,如下所示:

现在当我使用student::find_all()它时显示错误:

我认为这很清楚,我希望find_all()在班级学生中执行它。这是否可以通过后期静态绑定实现?

0 投票
3 回答
254 浏览

php - PHP使用后期静态绑定来获取调用函数?

是否可以通过使用后期静态绑定来获取调用函数的信息(文件名、行、函数...)?

以前used debug_backtrace()new \Exception+ getTrace()。_ 是否有可能(或更容易)使用一些很棒的超级特殊后期静态绑定功能关键字/功能?

0 投票
1 回答
61 浏览

php - 不可用时如何解决静态::调用?

我的服务器上有一个 php 5.2(无法更新),它在static::routin()调用时会出错。如何解决?无论如何,有没有办法检测这种类型的呼叫是否可用,以便添加智能呼叫机制?

0 投票
3 回答
86 浏览

php - PHP中的后期静态绑定,子类之间共享变量

也许我的问题已经被问过好几次了,但是......

我有以下代码

我就像这样使用它

它向我显示“1”。你可能猜到我需要“0”:)

我看到两种方法:

  1. 添加protected static $count=0;到每个派生类
  2. $count不是整数而是数组。inc并在和getCount方法中做一些这样的事情:

    静态::$count[get_call_class()]++;

但我认为这些方式有点丑陋。首先 - 让我复制/粘贴,我想避免。第二 - 好吧,我不知道:) 我只是不喜欢它。

有没有更好的方法来实现我想要的?

提前致谢。

0 投票
2 回答
66 浏览

php - 这是正常的吗?

我不明白这个后期静态绑定是如何工作的。

get_call_class() 在这两种情况下都会打印 A2,即使我用 self 调用了 doprint 方法。为什么?