gpt4 book ai didi

php - Redis Credis_Client php库

转载 作者:IT王子 更新时间:2023-10-29 06:06:42 26 4
gpt4 key购买 nike

我正在为我的一个应用程序使用 Php Credis_Client 库。它以类似的方式定义了所有的redis命令。

通过调用这些函数可以很好地从 Redis 存储和检索数据。

我检查了库代码以检查它到底做了什么。但是我无法弄清楚它是如何工作的?

代码如下:

我用来设置哈希键的函数,

hSet('test','field','value');

这是我在Redis lib文件中看到的

 * Hashes:
* @method bool|int hSet(string $key, string $field, string $value)
* @method bool hSetNx(string $key, string $field, string $value)

在 __call($name, $args) 函数中

$response = call_user_func_array(array($this->redis, $name), $args);
//where $name can be function name and $args is parameters to be passed

但是无法弄清楚 hSet 函数在 php 中的编写位置。如有任何帮助或建议,我们将不胜感激。

最佳答案

__call() 方法是类中非显式定义方法的回退:当您尝试使用不存在的类方法时调用它。

即:

cass A {
public function x1() { return 1; }
public function x2() { return 2; }
public function __call($name, $args) { return 3; }
}

$a = new A;

var_dump($a->nonExistingMethod(1,2,3));

这显示了 3。

__call 方法也接收 2 个参数,第一个是你调用的不存在函数的名称,第二个是一个参数数组,

在前面的示例中,$name 将是 nonExistingMethod$args 将是一个 array( 1, 2, 3 )

在您的情况下,当您调用 hSet 时,它回退到使用 'hset' 作为名称和 array('field','value' ) 作为参数,导致 $this->redis->hSet('field','value')

关于php - Redis Credis_Client php库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29276378/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com