2021年4月

简单的闭包(匿名函数)

function test_closure($name, Closure $clo){
    echo 'Hello {$name} ';
    $clo();
}

test_closure('Lily', function() {
    echo ' you are like...';
});

class A 
{
    private static $_instance = null;
    
    private function __construct(){}
    
    private function __clone(){}
    
    public static function getInstance()
    {
        if(! (self::$_instance instanceof self)){
            self::$_instance = new self();
        }
        return self::$_instance;
    }
}

$obj = A::getInstance();

记录下:

self 在本类中使用,只代表类本身。
$this 只有将类实例化以后才存在,指向类的实例。
static 当类中使用此关键字定义属性与方法时,在调用它时只要用类别::调用,因为它只属于类而非实例。

关于后期静态绑定,如下:

self2.png

static2.png

更新中间表记录

如果你需要在中间表中更新一条已存在的记录,可以使用 updateExistingPivot 。此方法接收中间表的外键与要更新的数据数组进行更新:

$user = App\Models\User::find(1);

$user->roles()->updateExistingPivot($roleId, $attributes);