• Где применяются key(), next(), current()?

    @Vitsliputsli
    Илья,
    Ну для начала если у вас в памяти массив на 1М значений, то foreach меньшая из проблем :) А в какой ситуации нам неважен сам элемент, а важен лишь его порядок? Разве что при пагинации, но возвращаемся к вопросу зачем вообще 1М значений в памяти?

    Задачи бывают разные, php язык общего назначения, поэтому в нем есть разный функционал. Но вы можете направить обращение в PHP, чтобы выпилили все "лишние" функции, т.к. лично вы не применяете ничего сложнее пагинации.
    iterator_to_array работает с объектами, это не процедурная функция.
    array_reverse потребует перестройки хеш-таблицы, а на это может потребоваться несколько, а то и несколько десятков миллисекунд.
    Эээ итератор делает то что он должен - перебирает значения. Если нужно "что-то иное", то по определению итератор не подходит т.к. он не "что-то иное".

    А я где-то написал, что итератор не перебирает значения?
  • Где применяются key(), next(), current()?

    @Vitsliputsli
    Илья,
    а чем конструкция if (условие) continue не устраивает внутри foreach?

    У вас большой массив, скажем 1 000 000 значений, вам нужно поменять значения с 800 000 по 900 000, вы установите указатель на 800 000 и пройдете 100 000 значений, или будете проходить 900 000 значений? А если вам нужен перебор в обратном порядке?

    Foreach при любом раскладе удобнее чем процедурные функции, которые ИМХО рудимент без полезной нагрузки.

    Foreach ограничен, о чем говорит его название "для всех", нужно что-то иное, он уже не подходит. Если вы пишите ООП код, то да, вам не нужны процедурные функции. Если вы пишите процедурно, то вам не нужны ООП итераторы. Но это не значит, что что-то не нужно, потому как одному из 2х перечисленных оно не понадобилось.
  • Где применяются key(), next(), current()?

    @Vitsliputsli
    Muranx, Илья, Дмитрий, у нас есть итераторы ООП и есть процедурные итерирующие функции. Т.е. если не используешь ООП, то очевидно нужно выбирать эти "как бы ненужные" функции.
    foreach - это очень простой итератор, который перебирает только слева направа, и весь массив. Если, вдруг, нужен другой порядок перебора, или нужно перебрать массив начиная с какого-то значения, то foreach уже не подойдет.
    Можно перебирать через while или for, но в этом случае теряем производительность, из-за необходимости получения каждого значения через ключ.
  • Работа с базами данных в php в сравнении с django?

    @Vitsliputsli
    1998or2, посмотрите Doctrine, этот механизм миграций более похож на используемый в Django, хотя и не полноценная замена.
  • Как быстро и с минимальной погрешностью подсчитать число записей в таблице с миллиардами записей?

    @Vitsliputsli
    Uno, любая СУБД имеет свои недостатки, любую сложную БД тяжело масштабировать.
    Но что не так с PostgreSQL? И что следует выбирать для нагруженных проектов? Что более адекватное?
  • Как увидеть ws запросы?

    @Vitsliputsli
    Серега Серега, ну вот же оно, нажмите на него и посмотрите, что передается внутри.
  • Как обрабатывать ошибки file_get_contents?

    @Vitsliputsli
    FanatPHP, я не говорю ерунду, а спрашиваю зачем. Нужна или не нужна ошибка в логах, зависит от задачи, если у тебя ощущение что file_get_contents не нужно выкидывать ошибку в любом случае - направь предложение в php, пусть поправят. Вполне возможно ты угадал мотивы автора и конкретно здесь не нужно фиксировать ошибку в логе, но, повторюсь, я ничего не утверждал, а спрашивал про задачу.
  • Как обрабатывать ошибки file_get_contents?

    @Vitsliputsli
    Надим Закиров,
    Нужно мне сделать функцию работающую по принципу чёрной коробки - функция принимает ссылку и возвращает скачанный файл, ну или false если скачать файл по какой-то причине не получилось

    file_get_contents именно так и работает.

    Если file_get_contents при загрузки файла из сети получает не 200-ый ответ, он выдает ошибку. Как эту ошибку перехватить?

    Зачем? Как вы хотите ее обрабатывать?
  • Почему перестало работать echo при обращении в файлу с кодом php?

    @Vitsliputsli
    VelesIS, вам 2 человека ответили "почему".
    С самой пересылкой данных на сайт проблем нет.

    "откройте Network в инструментах и посмотрите что прилетает в ответ на ваш ajax в одном и в другом случае".
  • Почему перестало работать echo при обращении в файлу с кодом php?

    @Vitsliputsli
    Так проводите исследование до конца, js падает на парсинге json, откройте Network в инструментах и посмотрите что прилетает в ответ на ваш ajax в одном и в другом случае, что из этого является json, а что нет.
  • Почему нет php5.6 (он установлен в системе) в /usr/bin?

    @Vitsliputsli
    dev123, если специальных настроек не делали, то Апач использует свой внутренний модуль php, и он никакого отношения к командной строке php не имеет. Путь /etc/php/5.6/cli намекает что php5.6 как минимум был установлен как отдельный интерпретатор, либо он удален, а конфиги нет, либо он где-то лежит, а лежать он может где угодно, в зависимости от фантазии того, кто собирал его, либо собирал пакет, либо просто скопировал куда-то - ищите поиском.
  • Как получить группы чисел из массива PHP сумма которых равна = N?

    @Vitsliputsli
    sergeyflancer, значения в массиве всегда кратны друг другу? Т.к. работать будет только в этом случае.
    Если взять некратные значения, то работать не будет:
    $cost = 1100;
    $array = [
    '7' => 1000,
    '8' => 300,
    '9' => 300,
    '10' => 300,
    '11' => 200,
    ];
  • Что будет, если не кодировать данные в JSON?

    @Vitsliputsli
    lexstile,
    1 - валидный JSON, и браузер его успешно распарсил;
    2 - JSON который еще раз был закодирован в JSON.
  • Что такое stateless?

    @Vitsliputsli
    MaMkO, если делаете это одним api запросом, то не нарушаете. Если, к примеру, посылаете запрос, что работаете с пользователем таким-то, а потом шлете запрос про действия этого пользователя, подразумевая, что сервер уже знает о каком идет речь, то нарушаете.
    Redis тоже СУБД, но к этому вопросу это отношения не имеет никакого.
  • Как переустановить нужный Xdebug?

    @Vitsliputsli
    gogolive,
    1) php как модуль Апача и php в командной строке - это абсолютно разные программы. Поэтому, если ваш запрос в браузере обрабатывает Апач (и именно модулем), то нужно смотреть phpinfo именно в нем. Что там выводит php -v в командной строке абсолютно не важно, это сосвсем другая программа. Тоже самое относится к настройкам php cli в PHPStorm - абсолютно не важно что там.
    2) Настройки вроде норм, добавьте xdebug.remote_autostart=on на время отладки, чтобы не полагаться на extension браузера. idekey не особо нужен, вряд ли так все сложно. Зачем полный путь до xdebug.so не знаю, но это ваша система, вам виднее.
    3) Проверьте, что PHPStorm слушает 9000 для xdebug. И если idekey используете, то его значение в PHP совпадает с настройками xdebug.
    4) Если ставили xdebug вручную, не из репов, то проверить, что скачали версию для нужной версии php и разрядности.
  • Насколько актуален чистый PHP?

    @Vitsliputsli
    XOROX,
    лучше знать 1 язык хорошо, чем 3 не хорошо.

    С этим никто не спорит, но речь шла о другом. Хороший программист пишет не на языке, а с помощью языка, поэтому изучать нужно программирование, язык вторичен. Зациклившись на одном языке, вы станете его заложником, будете знать только его подходы, и не сможете решить задачу иначе.
  • Как правильно синхронизировать 2 поля с разных таблиц?

    @Vitsliputsli
    Kolya Vantukh, чем не подходят транзакции? Если говорить про целостность данных, то они как раз их обеспечивают, 2 апдейта будут зафиксированы только вместе, либо вообще не будут зафиксированы. Триггеры вносят неочевидное поведение, вы в коде будете видеть 1 апдейт, и нужно как-то догадаться, что в триггерах есть что-то еще. Гораздо удобнее, когда все описано в одном месте, и не нужно постоянно прыгать из кода в базу и там проверять не висит ли какой-нибудь триггер.
  • Как получить последний подходящий результат при объединении таблиц?

    @Vitsliputsli
    1) сгруппировать, получить id-ники с max(docPublishDate) и выбрать строки по ним;
    2) использовать аналитические функции, отсортировать внутри окна по docPublishDate и выбрать первое или последнее значение в зависимости от сортировки.
  • Насколько актуален чистый PHP?

    @Vitsliputsli
    Согласен со всеми пунктами, разве что "php-шников и фронтов много", а вот специалистов среди них очень мало.
  • Как правильно синхронизировать 2 поля с разных таблиц?

    @Vitsliputsli
    Kolya Vantukh, хм, не помню, что я имел ввиду, когда это писал... Чушь сморозил.
    Что касается вопроса, используйте транзакцию для этих 2 апдейтов. Тригеры - плохой выбор, они создают неочевидность.