Пользователь пока ничего не рассказал о себе

Достижения

Все достижения (3)

Наибольший вклад в теги

Все теги (24)

Лучшие ответы пользователя

Все ответы (13)
  • PHP: нужно ли создавать массив перед его заполнением?

    @kastigar
    С isset абсалютно верно. Но я бы не стал называть это «чтение», т.к. isset — это специальная конструкция языка. Если вы попытаетесь спросить индекс не-массива, то:
    unset($a);
    echo $a['a']['b']['c']; // будет warning
    echo $a['a']; // тоже будет warning
    isset($a['a']['b']['c']); // не будет warning'а
    

    С записью тоже есть нюансы. Если переменная (даже если это элемент массива) не установлена, то её можно неявно использовать как массив. Но если она установлена и не является массивом, то могут быть проблемы:
    <?php
    unset($a);
    $a['a'] = 'a'; // это ок
    $a['b'] = 1; // это ок
    $a['a'][0] = 'b'; // перезапишет первый символ строки!!!
    $a['b'][0] = 'b'; // будет notice, про обращение к скаляру, как к массиву
    unset($a);
    $a['a']['b']['c']['d'] = 'str'; // тоже ок
    $с = new SomeClass;
    $с[0] = 'c'; // Если класс имплементил ArrayAccess интерфейс, то вызовется метод offsetGet,
                 // иначе Fatal error
    

    Так что если не уверены, что содержится в переменной или элементе массива, то лучше явно проинициализируйте массив.
    Ответ написан
    Комментировать
  • Кто нить знает как пробросить вебсокет через nginx малой кровью?

    @kastigar
    Попробуйте haproxy. Первая ссылка в гугле очень похожа на то, что вам нужно.
    Ответ написан
    Комментировать
  • CPP вставки в PHP-скрипты

    @kastigar
    Помню когда-то натыкался на такой то ли экстеншен, то ли класс. Он позволял выполнять c/c++ код. Стало интересно как. Посмотрел исходники, оказалось всё банально: исходник писался во временный файл, затем компилировался с помощью gcc и выполнялся. Вот в принципе и всё))) Быстрой поиск не нашёл его(давно это было), может вам повезёт больше.
    Ответ написан
    Комментировать
  • Существуют ли статические анализаторы, выявляющие наличие повторов шаблонов кода?

    @kastigar
    Вот посмотрите еще PMD's Copy/Paste Detector. Правда он в составе java pmd, который, насколько я знаю, бесполезен для PHP проектов (именно сам PMD бесполезен). На зато PMD's CPD поддерживает не один язык.
    Ответ написан
    1 комментарий
  • Redis. Как записать в ключ TimeStamp с сервера, где запущен Redis-сервер?

    @kastigar
    Насколько мне известно, Redis такого не умеет. Поэтому есть такие альтернативы:
    — не давать открытый доступ к Redis, а предоставлять сервисы (достаточно трудоёмкая задачка и возможно лишняя, но более правильная, так как нет зависимости от бэкэнда; на самом деле все зависит от задачи)
    — пропатчить Redis (легче первого, но будут проблемы, если патч не примут: придется ручками саппортить такую фичу)
    — настроить синхронизацию времени с помощью NTP-клиента (самое простое, но если нет рута, то невозможно выполнить)
    Ответ написан
    Комментировать

Лучшие вопросы пользователя

Все вопросы (5)