PHP 相当于C++模板
PHP equivalent to C++ Templates
在C++中,我可以像这样创建模板类:
<template class l> class foo {
private:
l myVar;
foo::foo(l var) {
myVar = var
}
l getVar() {
return myVar
}
// etc...
}
我可以在 PHP 中做类似的事情吗?
我问的原因:
假设我在PHP中有一个概念化MySQL表的类:
class Table {
private $conn;
private $name;
function __construct($connection, $tablename) {
$this->conn = $connection;
$this->name = $tablename;
}
// etc..
}
我可以制作处理某些类型查询的类函数:
function GetAll() {
$sql = "SELECT * FROM " . $this->name;
$data = $this->conn->query($sql);
return $data;
}
当然,这只是一个例子,但希望你能理解图片。
我想做的是假设我有一个名为"用户"的类。在我返回$data之前,我想把它放在一个用户对象中。当然,为了通用,我希望能够将其放入我喜欢的任何类中。就像C++模板一样。
注意:PHP 接口不适用于此,因为我需要实例化类,而不仅仅是使用一组给定的函数。
编辑:
因此,我找到了解决MY问题的解决方法。
但是,我仍然想要一个答案,是否有PHP等价物。
所以,我想出了一个解决方法,但我仍然会感谢其他答案。我仍然想知道是否有PHP等效物。但是,这就是我得到的:
class Table {
private $conn;
private $name;
private filter; // a callback
function __construct($connection, $tablename, $callback) {
$this->conn = $connection;
$this->name = $tablename;
$this->filter = $callback;
}
// etc..
}
然后在 GetAll 中:
function GetAll() {
$sql = "SELECT * FROM " . $this->name;
$data = $this->conn->query($sql);
$data = $this->filter($data);
return $data;
}
然后,我可以传递一个回调,以我想要的方式过滤数据。
我认为这将奏效。
相关文章:
- .cpp和.h文件中的模板专用化声明
- C++模板来检查友元函数的存在
- 如何使用默认参数等选择模板专业化
- 模板参数替换失败,并且未完成隐式转换
- 具有默认模板参数的多态类的模板推导失败
- 部分定义/别名模板模板参数
- 模板-模板参数推导:三个不同的编译器三种不同的行为
- 具有奇怪重复模板模式的派生类中的成员变量已损坏
- 如何在c++中为模板函数实例创建快捷方式
- 使用C++中的模板和运算符重载执行矩阵运算
- 有人能分解一下这个c++模板的语法吗
- 如何在c++17中制作一个模板包装器/装饰器
- 模板化建造师专业化
- 调用专用模板时出错"no matching function for call to [...]"
- 模板元程序查找相似的连续类型名称
- 如何在C++20中创建模板别名的推导指南
- 没有名称的C++模板参数
- 具有重复类型的C++可变模板
- 如何将enable-if与模板参数和参数包一起使用
- 没有用于初始化C++中的变量模板的匹配构造函数