Late Static Binding чи пізнє статичне скріплення ( як мені переклав перекладач ) така властивість PHP, яка яка може бути використана для посилання на клас, що викликається, в контексті статичного успадкування.
Звучить складно але зараз я покажу приклад і все стане зрозуміло.
Маємо такий код
<?php
class Model
{
protected static $tableName = 'Model';
public static function getTableName()
{
return self::$tableName;
}
}
class User extends Model
{
protected static $tableName = 'User';
}
echo User::getTableName(); // поверне нам 'Model' а не 'User'
Все дуже просто. Потрібно замінити self на static
Ось поправлений код
<?php
class Model
{
protected static $tableName = 'Model';
public static function getTableName()
{
return static::$tableName;
}
}
class User extends Model
{
protected static $tableName = 'User';
}
echo User::getTableName(); // User
Це все. Ось так працює late static binding в PHP.