Size: a a a

2020 June 28

S

Shurick in phpGeeksJunior
/bin/cat
Зачем?
"А нельзя заставить требовать наличие этой константы?"
источник

/

/bin/cat in phpGeeksJunior
Она будет в любом случае
источник

/

/bin/cat in phpGeeksJunior
Нельзя отставить пустую реализацию для abstract метода
источник

S

Shurick in phpGeeksJunior
ну если поддерживается тогда ок
источник

KN

Kirill Nesmeyanov in phpGeeksJunior
/** @var \Composer\Autoload\ClassLoader $composer */
$composer = require __DIR__ . '/vendor/autoload.php';

spl_autoload_register(static function (string $class) use ($composer) {
   $parent = XXXXX::class;
   $constantName = 'YYYY';

   if (
       // Class loaded
       $composer->loadClass($class) &&
       // Constant not exists
       ! \defined($class . '::' . $constantName) &&
       // Class is an subtype of $parent
       \is_subclass_of($class, $parent)
   ) {
       throw new \LogicException(\sprintf(
           'Class %s contains abstract constant (o_0) and must therefore ' .
           'be implement the remaining constant (%s::%s)',
           $parent,
           $class,
           $constantName
       ));
   }
}, true, true);
источник

KN

Kirill Nesmeyanov in phpGeeksJunior
Простите, больше не буду
источник

KN

Kirill Nesmeyanov in phpGeeksJunior
:D
источник

S

Sergey in phpGeeksJunior
Kirill Nesmeyanov
Простите, больше не буду
Что это)
источник

KN

Kirill Nesmeyanov in phpGeeksJunior
определение абстрактной константы для всех потомков класса ХХХХ
источник

️️

️️👑OGURCHIK 🖤 ️... in phpGeeksJunior
throw new \LogicException(\sprintf(
           'Class %s contains abstract constant (o_0) and must therefore
источник

KN

Kirill Nesmeyanov in phpGeeksJunior
а, ну да, там родителя надо всунуть
источник

S

Sergey in phpGeeksJunior
Абстрактная константа, це бред
источник

KN

Kirill Nesmeyanov in phpGeeksJunior
поправил
источник

S

Shurick in phpGeeksJunior
Kirill Nesmeyanov
Простите, больше не буду
слишком толсто
источник

S

Sergey in phpGeeksJunior
Shurick
слишком толсто
Кто бы говорил
источник

KN

Kirill Nesmeyanov in phpGeeksJunior
Shurick
константу нельзя переопределить а статический метод можно ))
ну как тебе сказать. Вообще можно двумя строчками это сделать, но "лучше нинада" (с)
источник

KN

Kirill Nesmeyanov in phpGeeksJunior
т.к. в пыхе константа - это реальная константа, то при её использовании выделяется та же самая область памяти всегда
источник

KN

Kirill Nesmeyanov in phpGeeksJunior
а значит достаточно просто перезаписать этьу область памяти
источник

KN

Kirill Nesmeyanov in phpGeeksJunior
const EXAMPLE = 'test';

echo EXAMPLE; // test


В будущем, везде, где будет использоваться этот EXAMPLE - будет одна и та же область памяти
источник

KN

Kirill Nesmeyanov in phpGeeksJunior
а значит:
FFI::cdef('char *memcpy(char *dst, const char *src, size_t len);')
   ->memcpy(EXAMPLE, 'asda', 4);

echo EXAMPLE; // asda
источник