Константы, строки и ключи

Давайте тестанём не предмет скорости ещё какую-нибудь чепуху.

Вот, допустим, константы. Одно из применений констант, это обозначение «магических» чисел. Например:

class Compressor
{
    const GZIP = 1;
    const BZIP = 2;
    const RAR = 3;
    const HUERAR = 4;
 
    public function compress($str, $type)
    {
        // ...
    }
}

То есть у нас есть некое множество значений (типов сжатия) и для обозначения каждого мы придумываем от балды какое-то число. А, чтобы с числами не запутаться, придумываем поверх него константу. И используем:

$compressed = $compressor->compress($plain, Compressor::GZIP);

С незапамятных пор так ведётся. Ещё Страуструп молодым был.

Однако, иногда посещает мысль, что PHP, это не Си и со строками он работает намного веселее. И почему бы не написать крамольное:

$compressed = $compressor->compress($plain, 'gzip');

Остальной текст под катом

Честь php_memcached восстановлена

На днях на highload.com.ua появилась статья сравнивающая два php-расширения для работы с Memcached. Старое php_memcache и относительно новое php_memcached.

Среди прочего был приведен тест производительности, который внёс сумятицу в стройные ряды поклонников нового расширения. По нему получалось, что php_memcached умудрился стать втрое медленнее php_memcache.

Остальной текст под катом

Тесты-хуесты

Или вот, допустим, тесты. Нет ничего уёбищнее тестов. Я говорю не о unit-тестах, хотя они тоже весьма неоднозначны. И не о тестах на беременность, хотя тоже приятного мало. Говорю о тестах на так называемые «знания». Особенно для программистов.

Внимание вопрос: что вернёт следующий код?

(++i) - (i++) * (--b) + (b = 5) - (i = 6)

Единственный вменяемый ответ здесь может быть: а с какого вообще хуя мне это знать?!

Остальной текст под катом