PHP5.2中的usort错误
嗨,我是PHP开发者的新手 我试着用这个帮助来分类 你在写这个:PHP5.2中的usort错误,php,codeigniter,Php,Codeigniter,嗨,我是PHP开发者的新手 我试着用这个帮助来分类 你在写这个: $cmp=$this->\u usortByArrayKey($key、$asc、$sort\u标志) 但是您的函数\u usortByArrayKey接受5个必需的参数,而您只传递3个。这就是为什么传递给ConnectList::_usortByArrayKey()的第一条消息message:Argument 4必须是一个数组,没有给定,在第321行的C:\xampp\htdocs\receiverlist\applicatio
$cmp=$this->\u usortByArrayKey($key、$asc、$sort\u标志)代码>
但是您的函数\u usortByArrayKey
接受5个必需的参数,而您只传递3个。这就是为什么传递给ConnectList::_usortByArrayKey()的第一条消息message:Argument 4必须是一个数组,没有给定,在第321行的C:\xampp\htdocs\receiverlist\application\models\connect.php中调用并定义
出现您正在编写以下内容:
$cmp=$this->\u usortByArrayKey($key、$asc、$sort\u标志)代码>
但是您的函数\u usortByArrayKey
接受5个必需的参数,而您只传递3个。这就是为什么传递给ConnectList::_usortByArrayKey()的第一条消息message:Argument 4必须是一个数组,没有给定,在第321行的C:\xampp\htdocs\receiverlist\application\models\connect.php中调用并定义
出现您要问的问题是,您需要将PHP5.2中不可用的匿名函数转换为PHP5.2中可用的函数。职能负责人:
function(array $a, array $b) use ($key, $asc, $sort_flags)
由于这是在使用use
子句,您需要在PHP5.2中用一个类来模拟它。简化示例如下:
function ($a) use ($b)
一个类可以是这样的:
class Func
{
private $b;
public function __construct($b)
{
$this->b = $b;
}
public function invoke($a) {
$b = $this->b; # operate on $b, not $this->b
}
public function getCallback() {
return array($this, 'invoke');
}
}
这是怎么回事?用法示例:
$func = new Func($b);
return $func->getCallback();
模式是什么
创建一个表示函数的新类
use
子句中的变量是构造函数参数
您可以创建一个表示函数的invoke
函数
在invoke
函数中,所有使用变量都复制到本地范围
getCallback()
函数提供了可用于调用该函数的回调
您要问的问题是,您需要将PHP5.2中不可用的匿名函数转换为PHP5.2中可用的函数。职能负责人:
function(array $a, array $b) use ($key, $asc, $sort_flags)
由于这是在使用use
子句,您需要在PHP5.2中用一个类来模拟它。简化示例如下:
function ($a) use ($b)
一个类可以是这样的:
class Func
{
private $b;
public function __construct($b)
{
$this->b = $b;
}
public function invoke($a) {
$b = $this->b; # operate on $b, not $this->b
}
public function getCallback() {
return array($this, 'invoke');
}
}
这是怎么回事?用法示例:
$func = new Func($b);
return $func->getCallback();
模式是什么
创建一个表示函数的新类
use
子句中的变量是构造函数参数
您可以创建一个表示函数的invoke
函数
在invoke
函数中,所有使用变量都复制到本地范围
getCallback()
函数提供了可用于调用该函数的回调
在codeigniter中,将callabck函数输入PHP函数需要类似于:
usort($array, array('name-of-controller', 'name-of-method'));
显然,在适当的地方替换名称。在codeigniter中,将callabck函数输入PHP函数需要类似于:
usort($array, array('name-of-controller', 'name-of-method'));
显然,在适当的地方替换名称。您提供的链接看起来已断开(哪个注释包含您的代码)?看起来它已被新版本替换。您提供的链接看起来已断开(您的代码在哪一个注释中)?看起来它已经被一个新版本所取代。