Web Мастерская
Переход на PHP 7
Решил написать о переходе на PHP 7, так как сам сейчас занять переводом кода одного движка по PHP 7. И так для начала включаем дебаг или отладчик в админ панели сайта, если такого нет у вас, то можно сделать так, как написано в теме: Поиск ошибок в PHP, теперь на экране монитора, мы можем видеть сообщения ошибках, например, такое:
Это сообщение говорит о том, что модификатор
Например, у нас сообщение ошибки указывает на такую строчку:
Её следует изменить так:
...
Warning: preg_replace(): The /e modifier is no longer supported, use preg_replace_callback instead - dir/file.php (номер строки)
Это сообщение говорит о том, что модификатор
e
не существует в PHP 7, следует избавляться от него, но если просто удалить данный модификатор, сценарий может выполнятся неправильно, непросто же так его туда писали. Я покажу на примере кода из PHPFOX 3 (как я переписывал код: PHPFOX 3 переход на PHP 7), делаем так:
Например, у нас сообщение ошибки указывает на такую строчку:
$sStr = preg_replace('/\[x=(\d+)\].+?\[\/x\]/ise', "''.stripslashes(\$this->_parseUserTagged('$1')).''", $sStr);
Её следует изменить так:
- Жалоба
Моя первая страница на PHP (С чего начать?)
Здравствуйте.
Мне часто приходят письма с вопросами, с чего начать изучение, как устроен PHP и какую книгу я бы рекомендовал для изучение? Сразу скажу, что я изучал язык PHP (и продолжаю изучать) не по какому то учебнику, у меня не было какой то конкретной книги, по которой бы я занимался. Во всех книгах, что я видел, я прочитал первые две страницы, там где рассказывают, как вывести на экран надпись: Привет, Мир!, ну или, что то в этом духе. Конечно это делается так:
И это я знал ещё до того, как решил, что я должен понимать код написанный на PHP, но этого знания очень и очень мало. Мне надо понимать почему выводится именно этот фрагмент, а не другой и при каких условиях. Интерес читать книги у меня "улетел" из головы и я больше не искал светлого пути в каких то книгах, так что рекомендовать, какую книгу выбрать и какого автора, я не буду. Могу лишь сказать если будите изучать PHP по книге, выбирайте книгу посвежее, те книги, что написанные более года...
Мне часто приходят письма с вопросами, с чего начать изучение, как устроен PHP и какую книгу я бы рекомендовал для изучение? Сразу скажу, что я изучал язык PHP (и продолжаю изучать) не по какому то учебнику, у меня не было какой то конкретной книги, по которой бы я занимался. Во всех книгах, что я видел, я прочитал первые две страницы, там где рассказывают, как вывести на экран надпись: Привет, Мир!, ну или, что то в этом духе. Конечно это делается так:
<?php
echo 'Привет, Мир!';
И это я знал ещё до того, как решил, что я должен понимать код написанный на PHP, но этого знания очень и очень мало. Мне надо понимать почему выводится именно этот фрагмент, а не другой и при каких условиях. Интерес читать книги у меня "улетел" из головы и я больше не искал светлого пути в каких то книгах, так что рекомендовать, какую книгу выбрать и какого автора, я не буду. Могу лишь сказать если будите изучать PHP по книге, выбирайте книгу посвежее, те книги, что написанные более года...
Условие (if else) в PHP
Хочу в своем посте кратко рассказать об условиях в php, для чего они нужны и как с ними работать. Начну конечно же с пояснения:
Условия в php - это часть скрипта, например которое может требовать что бы переменная соответствовала текущему времени суток, или чтоб переменная показывала информацию о том, что пользователь должен зарегистрироваться или авторизоваться, если смотрит гость, а если пользователь авторизован, то отображается другая информация.
И так переходим к первому примеру условия, которое называется if и выглядит примерно так:
Этот синтаксис говорит о том, что если условие соответствует, то выполняет свою работу оператор. Для лучшего восприятия приведу простой пример:
То есть если переменная
Условия в php - это часть скрипта, например которое может требовать что бы переменная соответствовала текущему времени суток, или чтоб переменная показывала информацию о том, что пользователь должен зарегистрироваться или авторизоваться, если смотрит гость, а если пользователь авторизован, то отображается другая информация.
И так переходим к первому примеру условия, которое называется if и выглядит примерно так:
if (условие)
{
оператор
}
Этот синтаксис говорит о том, что если условие соответствует, то выполняет свою работу оператор. Для лучшего восприятия приведу простой пример:
$figure = 5;
if ($figure > 3)
{
echo "<strong>$figure</strong> больше чем 3";
}
То есть если переменная
$figure
равна пяти, а в условии стоит цифра меньше пяти, то выйдет сообщение: 5 больше чем 3
. Если же цифру три...Как проверить существование метода в PHP
Последствия обращения к методу, которого не существует, могут быть - пустая страница, то есть страница не будет загружена, а при включенном дебаге появится сообщение ошибки о несуществующем методе. Чтобы такого не происходило, я прежде проверяю метод на существование, если он есть то работаю с ним, если нет, разумеется не работаю. Как это делаю рассказываю ниже.
В PHP есть функция method_exists, чьё предназначение как раз таки проверять метод на существование. Делаем так:
Если метод существует, появится сообщение:
Конечно вместо вывода сообщения, работаем с проверенным методом....
В PHP есть функция method_exists, чьё предназначение как раз таки проверять метод на существование. Делаем так:
$class = new className; # Подключаемся|Получаем класс
if (method_exists($class, 'methodName')) # Проверяем наличие метода в полученном классе
{
echo 'Метод существует.'; # Если метод существует, выводим сообщение
}
Если метод существует, появится сообщение:
Метод существует.
Конечно вместо вывода сообщения, работаем с проверенным методом....
Сделать первую букву строки заглавной на PHP
Бывает необходимым сделать первую букву строки заглавной и это легко решается при помощи функции ucfirst, предназначение данной функции - преобразовать первый символ строки в верхний регистр. Делаем так:
На экране получим:
Все просто и понятно. Но, как вы могли заметить обрабатывали мы латинские символы, а что если мы сделаем тоже самое, но с кириллическими символами:
На экране будет:
То есть преобразование не произошло... Есть вариант заменить функцию ucfirst на вот такую конструкцию:
Где используются две функции:
Делаем так:
И получаем результат на экране:
Все работает! Получается тут:
$line = 'line example';
echo ucfirst($line);
На экране получим:
Line example
Все просто и понятно. Но, как вы могли заметить обрабатывали мы латинские символы, а что если мы сделаем тоже самое, но с кириллическими символами:
$line = 'пример строки';
echo ucfirst($line);
На экране будет:
пример строки
То есть преобразование не произошло... Есть вариант заменить функцию ucfirst на вот такую конструкцию:
mb_strtoupper(mb_substr($line, 0, 1)) . mb_substr($line, 1);
Где используются две функции:
- mb_strtoupper - преобразует строку в верхний регистр.
- mb_substr - возвращает часть строки.
Делаем так:
$line = 'пример строки';
echo mb_strtoupper(mb_substr($line, 0, 1)) . mb_substr($line, 1);
И получаем результат на экране:
Пример строки
Все работает! Получается тут:
mb_strtoupper(mb_subst
...