stpdqusts, По стандарту SQL в списке выдачи SELECT с GROUP BY запрещено использовать значения полей, не входящих в список GROUP BY. Но можно использовать агрегатные функции по любым полям. Потому, написать просто p.name нельзя, а MAX(p.name) можно.
Да, MySQL позволяет написать просто p.name без заворачивания в агрегатную функцию. Но в других СУБД с этим строже.
vrazbros, При попытке декодировать то, что не является JSON, json_decode с установленным флагом JSON_THROW_ON_ERROR выбрасывается исключение. Которое можно, например, поймать в более удобном месте.
Не имеет смысла вручную проверять, содержит ли строка JSON: json_decode работает быстрее и точнее любой ручной проверки.
gzmone, Нет, не из-за отсутствия if. Но если данные не записались, значит при записи произошла ошибка. Всё, что делает мой код - это проверяет, что запись прошла удачна и в случае ошибки показывает сообщение, объясняющее её причину.
Конструкция md5(md5(...)) показывает, что автор курсов в принципе не понимает, как надо защищать пароли от взлома, и не знает о существовании в PHP встроенных функций, специально предназначенных для безопасного хранения паролей.
alcoholivanov, В PHP не существует алфавитного порядка ключей. Потому информация "в какой-то статье" - это откровенный бред.
Ключи сортируются по алфавиту только в JavaScript.
NewPHPCoder, Так объясни, что именно требуется. Потому как если взять исходный запрос, то результатом отбрасывания дублирующих game_id будет столбец из единиц.
Нет, я имею в виду, что в таблице user поле email должно быть создано так: 'email' => $this->string()->notNull()->unique(),
Но если поле email есть в таблице user, то зачем оно в таблице profile? В базе данных не должно быть дублирования никаких значений, кроме первичных ключей.
Muranx, К сожалению, не знаю: никогда этим не интересовался. В принципе, самого JS должно быть достаточно для парсинга - никто же код на десятки тысяч строк на codepen выкладывать не будет.
Muranx, Либо делать простейший вариант с подсветкой ключевых слов, либо реализовывать нормальный синтаксический анализ, подробно описанный в любой учебнике по написанию компиляторов.
MySQL поддерживает множество разных кодировок символов. И если явно не указывать параметр CHARACTER SET в командах CREATE DATABASE и/или CREATE TABLE, то для создаваемых баз и таблиц будет использована кодировка по умолчанию, установленная в настройках MySQL.
Разработчики PHP активно избавляются от того, что считают устаревшим. И если эти функции даже кандидатами в deprecated не являются, значит они реально нужны - независимо от мнения участников "тостера".
Времена PHP 5.3 прошли много лет назад. А с версии 5.4 никакой обязательной передачи по ссылке уже нет.
P.S. PHP - мультипарадигменный язык, который не обязывает использовать классы и автозагрузку.
FanatPHP, Вызвать функцию по имени в переменной можно было и задолго до 7-й версии. И через рефлексию это тоже можно прекрасно сделать. Однако, никто из разработчиков PHP почему-то не спешит объявлять call_user_func и call_user_func_array устаревшими - в отличие от выброшенной из 8-й версии create_function.
Александр Торопов, Сам по себе Python не умеет ничего, что не умел бы PHP. При этом интерпретатор Python медленнее интерпретатора PHP.
До недавнего времени достоинством Python была возможность подключения библиотек, написанных на C/C++: всю работу делают эти библиотеки, а Python используется только как интерфейсная прокладка между креслом и библиотеками.
Но с версии 7.4 в PHP тоже появилась возможность подключать библиотеки. Так что сейчас Python не имеет никаких преимуществ.
Да, MySQL позволяет написать просто p.name без заворачивания в агрегатную функцию. Но в других СУБД с этим строже.