• Почему существует 2 версии PHP (Non Thread Safe и Thread Safe)?

    zoonman
    @zoonman
    ⋆⋆⋆⋆⋆
    Здесь ответ на ваш вопрос.

    Для тех, кто не знает английский.

    Версию сервера нужно выбирать в зависимости от того, как вы интегрируете PHP c веб-сервером.
    Например, когда вы используете mod_php, у вас модуль и PHP всегда загружены в память и каждый запрос обрабатывается в отдельном потоке. Из-за этого mod_php работает быстрее, чем CGI. В данном случае нужно использовать потоко-безопасную реализацию (thread-safe) поскольку каждый поток имеет доступ к памяти другого потока.

    Когда вы работаете с IIS, у вас PHP запускается ввиде отдельного процесса через CGI и в таком случае потоко-безопасность не имеет смысла, поскольку у вас 1 процесс и фактически 1 поток созданный этим же процессом. Операционная система изолирует память процессов по умолчанию.

    В случае модели с FastCGI, потокобезопасность также не имеет смысла, поскольку тотже PHP-FPM держит несколько отдельных процессов PHP в памяти, но не потоков.
    Ответ написан
    Комментировать
  • Как реализовать такой эффект?

    @propellersebastian
    Здесь показано, как это сделать https://codepen.io/anna_blok/pen/wRweyN
    Ответ написан
    Комментировать
  • Как реализовать такой эффект?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Ответ написан
    Комментировать
  • Что означает эта штука в запросе?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    'cut' type или, что то же самое, 'cut' as type - константное значение во всех строках результата.

    (запрос) x (или (запрос) as x) - это результат запроса служит новой временной таблицей для другого запроса.
    Ответ написан
    3 комментария
  • Гуманитарий мозгом, но нравится кодить, как быть?

    @Araya
    тежело

    Вы сейчас оскорбляете всех гуманитариев. Вы знаете вообще, кто такой гуманитарий?
    Ответ написан
    3 комментария
  • Гуманитарий мозгом, но нравится кодить, как быть?

    anton_reut
    @anton_reut
    Начинающий веб-разработчик
    я слишком тупой для программирования
    - Скорее ленивый и не дисциплинированный. Мозг у всех примерно одинаковый, вопрос в мотивации и усидчивости.
    Ответ написан
    Комментировать
  • Какой смысл от for of когда есть for in?

    evgeniy8705
    @evgeniy8705
    Повелитель вселенной
    // Новый синтаксис добавлен для перебора итерируемых коллекций. Можете написать свою коллекцию с реализацией итератора и использовать for..of для ее перебора.
    
    let arr = [`a`, `b`, `c`, `d`, `e`];
    
    for (elem in arr) {
    	console.log(elem); // 0 1 2 3 4
    }
    
    for (elem of arr) {
    	console.log(elem); // a b c d e
    }
    
    for (let iter = arr[Symbol.iterator]; iter.done;) {
    	console.log(iter.next()); // a b c d e
    }
    Ответ написан
    Комментировать
  • Где найти удаленную стажировку для новичка PHP?

    Плавно - это насколько долго? Год, два, пять?
    Находишь на любом сайте поиска работы удаленку по совместительству (или неполный рабочий день, везде по-разному называется). Пишешь, просишь тестовое задание. Могут пообщаться на предмет знаний - не робей. Отвечай на все предложения, которые найдешь

    Что я вынес из практического опыта
    - не нужно бояться сказать "не знаю" или ляпнуть не то. Адекватные работодатели нормально относятся к слабой подготовке кандидатов
    - делай ВСЕ тестовые задания, даже если отказали. Тебе нужна практика? Вот она
    - отказ - это нормально? отказывать будут много. Это нормально. И хорошо мотивирует. Тебе зададут правильные вопросы, ты поймешь куда двигаться
    - взяли на работу - делай больше. Тут вообще без вариантов. Изучай сопутствующие вопросы. Спрашивай более опытных (см.п.1). Не получается - проси помощи. Накосячил - сразу признавайся. Нормальные старички обматерят, но попытаются наставить на путь истинный
    - скорее всего, хотя бы раз кинут на деньги) Просто смирись

    Не в обиду другим комментаторам, но:
    - самому сесть и придумать (а потом - заставить делать) какое-либо задание крайне трудно
    - переучиться в 28 лет - вообще не проблема. Мир IT по-своему интересен: где-то прикольно, где-то убого. Как и везде
    - читай больше кода. Порядок таков: код -> книжки -> видосы. В ходе обучения у тебя ДОЛЖНЫ возникать вопросы и ты ДОЛЖЕН их решать (как и в работе). Если не понятно из книг - посмотри видео, но не наоборот, ибо в голове нихера не отложится
    - надоело - брось. Не заставляй себя кипеть над фреймворками, если они тебе не заходят. Всему свое время. Ковыряй WordPress-ы, Joomla и прочие CMS
    Ответ написан
    Комментировать
  • Зачем в catch делать throw?

    Maksclub
    @Maksclub Куратор тега PHP
    maksfedorov.ru
    try {
        $this->initDBConnect();
    } catch (\Exception $e) {
        // Тут залогировали
       $this->logger->error('Некоторое сообщение', [некоторые данные]);
    
        // тут выкинули дальше
        // или throw new MyAnyException, 
        // а не просто дальше выкидывать тоже самое
        throw $e; 
     }


    Для чего бросать дальше
    Например идет процесс оплаты товара, в клиенте выкинулось исключение... мы в слое работы с АПИ платежки поймали исключение и залогировали, но выкинули дальше, чтобы наша система выше поймала, откатила транзакцию и плюнула ошибкой уже своей для слоя выше
    Ответ написан
    3 комментария
  • Как удалить элементы из массива по определенному значению?

    Immortal_pony
    @Immortal_pony Куратор тега PHP
    $array = array_filter($array, function($element) { 
        return $element['name'] !== "Иванов";
    });


    Также хочу отметить, что:
    1. Массив из которого мы удаляем - не ассоциативный
    2. Крайне желательно после подобной фильтрации сделать ключи массива последовательными, например так:
    $array = array_values($array). Это поможет избежать неожиданностей при json_encode, например ;)
    Ответ написан
    2 комментария
  • Как удалить элементы из массива по определенному значению?

    @Nujabes37
    :DEATH
    Проходитесь по массиву, если находите ученика(доктора) с фамилией Иванов, удаляете его из массива по индексу.
    foreach ($array as $i => $doctor){
        if ($doctor['name']==='Иванов'){
            unset($array[$i]);
        }
    }
    var_dump($array);
    Ответ написан
    4 комментария
  • Как правильно привести значения в массиве к типу int?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    В общем, если нужно отсеять нулевые значения, то
    $filter = array_filter($filter, 'intval');
    если оставить, то
    $filter = array_map('intval', $filter);

    Но я смотрю тут уже столько умных рассуждений и заумных вариантов решения. Куда уж мне-то со своими огрызками.
    Ответ написан
    2 комментария
  • Как правильно привести значения в массиве к типу int?

    VladimirAndreev
    @VladimirAndreev
    php web dev
    а почему не

    $checked = null;
    if (!empty($filter) {
        foreach ($filter as $value) {
            if ((int)$value === $attributes_id) {
                $checked = ' checked';
                break;
            }
        }
    }
    Ответ написан
    3 комментария
  • Как правильно привести значения в массиве к типу int?

    @DanKud
    На счет правильности или неправильности тут вопрос мне кажется ставить не совсем корректно. Как вам удобнее, так и делайте. Тут больше вопрос в том - какой вообще по сути смысл приводить значение к (string) в вашем первом примере? При нестрогом сравнение (то есть без третьего параметра true) это по сути будет сделано автоматически. Я лично в такой ситуации вообще не вижу смысла от строго сравнения типов. Просто то преобразование типов, которое вы хотите делать, будет сделано автоматически при нестрогом сравнение самим интерпретатором.

    Перебор массива можно также сделать с помощью array_map:

    $arr = array_map(function($n) {
        return (int)$n;
    }, $arr);
    Ответ написан
    1 комментарий
  • Как правильно привести значения в массиве к типу int?

    @muhasa
    Ваш вариант вполне неплохой, разве что теперь отпадает вообще надобность проверять типизацию в in_array, Вы же сами весь массив привели к int :)

    А вообще, какой смысл здесь в проверке со строгой типизацией?.. Конкретно в данном случае, какая разница между 1 и "1"? Я предполагаю, что тут это излишне.
    Ответ написан
    3 комментария
  • Как поместить элементы массива в input?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Так же, как значения собирали, можно их и восстановить:
    // ...
        $('input').each(function (index) {
            $(this).val(decode[index]);
        });

    Код в вопросе ещё сырой — если в LS ничего нет будет ошибка.

    jQuery.each() в коллбэк передаёт параметром индекс: 0, 1, 2, ... И если разметка документа не менялась, можно надеяться, что порядок найдённых input'ов будет тот же, что и при сохранении значений. Способ не гарантирует попадание значения в нужный input, но в простом случае упражнения сработает.

    Более по-взрослому будет дать input'ам уникальные id и сохранять их вместе со значениями. При восстановлении обращаться к элементам по id.
    Ответ написан
    5 комментариев
  • Как быстро засыпать чтобы было больше времени на изучение программирования?

    Zoominger
    @Zoominger
    System Integrator
    Б-же, до чего же у вас много свободного времени.

    Покупаете две гантели киллограмм по 10 и размахиваете ими часа за два до сна. Потом отжимаетесь. Потом приседаете. Потом повторяете всё сначала, пока сердце из ушей не полезет. "Хватит" - это когда насквозь промокли труханы, футболка, а на трениках разлилось большое потное пятно.

    После этого будете засыпать за 5 минут. Повторять через день. Проверено, работает. Проблемы с засыпанием возникают из-за малоподвижного образа жизни. Спорим, у вас жирок?

    Альтернатива - литр пива за 1,5 часа до сна или две плюшки [ЗАБЛОКИРОВАНО РКН] за час до сна.

    И кста, "больше времени на изучение" никогда не равно "будет эффективнее".
    Ответ написан
    4 комментария
  • Как получить данные из файла?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Оторвать руки тому, кто этот файл составлял.
    Потом найти какого-нибудь сообразительного пятиклассника чтобы записал в файл нормальный json. Ну или хотя бы писал в разные файлы.
    После этого читать файл обычным порядком.

    Ну или ладно. Это, конечно, ад, и за такое надо тоже руки отрывать
    $s = file_get_contents("fail");
    $s = str_replace(["\r","\n"], "", $s);
    $s = "[" . str_replace("}{", "},{", $s) . "]";
    $array = json_decode($s,1);


    Дальше сам.
    Ответ написан
    3 комментария
  • Есть отличные примеры создание бота telegram на php?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Абсолютно все что нужно для написания Telegram бота находится на странице https://core.telegram.org/bots/api
    У бота абсолютно тривиальный протокол, json в определенном формате шлется POST запросом по HTTPS.
    Соответственно реализация от языка по факту не зависит, можно хоть на bash скриптах сделать.
    Ответ написан
    Комментировать