Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在Yii中定义可调用变量_Php_Yii_Yii2 - Fatal编程技术网

Php 如何在Yii中定义可调用变量

Php 如何在Yii中定义可调用变量,php,yii,yii2,Php,Yii,Yii2,当我使用yii\filters\auth\HttpBasicAuth时 我想自定义public$auth,它是@var可调用的,因此我可以这样使用它: $identity = call_user_func($this->auth, $username, $password); 但是如何用下面的代码定义它呢 以下代码是此可调用函数的典型实现: function ($username, $password) { return \app\models\User::findOne([

当我使用yii\filters\auth\HttpBasicAuth时

我想自定义public$auth,它是@var可调用的,因此我可以这样使用它:

$identity = call_user_func($this->auth, $username, $password);
但是如何用下面的代码定义它呢

以下代码是此可调用函数的典型实现:

function ($username, $password) {
    return \app\models\User::findOne([
        'username' => $username,
        'password' => $password,
    ]);
}
为什么我不能像这个错误报告那样定义它

public $auth=function ($username, $password) {
    return \app\models\User2::findOne([
        'username' => $username,
        'password_hash' => $password,
]);

记住适当地命名函数。与其调用变量,不如调用函数,或者如果需要添加功能,可以扩展函数

public functionAuth ($username, $password) {
    return \app\models\User2::findOne([
        'username' => $username,
        'password_hash' => $password,
]);

我也不建议编辑yii文件,我总是会做一个新的函数来扩展它,然后添加你想要的自定义项,但是我需要使用下面的代码来调用可调用变量://$identity=call\u user\u func$this->auth,$username,$password;如果你能更详细地解释你将用它做什么,我可以进一步帮助你。您正在构建的是登录系统吗?