ПХП в жаркий июль 2010-го
Если Вы не популярны,
Значит, Вас как бы и не существует...
Язык PHP (ПХП, на русский манер произносится как пэхапэ, просто пэха или как угодно) является сейчас самым важным инструментом для всех нас, строящих или желающих начать строительство популярных сайтов. Где взять документацию и инструкции. Как установить на своем компьютере. Полезные советы: используйте error_reporting(-1). Что нового в версии 5.3., что там теперь нельзя, а что стало можно, но использовать не следует. Немного юмора.
© Перепечатка разрешается с установкой ссылки на ресурс http://kocby.ru.
Уважаемые дамы и господа!
Как ни крути, язык PHP (ПХП, на русский манер произносится как пэхапэ, просто пэха или как угодно) является сейчас самым важным инструментом для всех нас, строящих или желающих начать строительство популярных сайтов.
Поэтому некоторые выпуски этой рассылки (в том числе данный выпуск) мы будем посвящать наиболее важным и интересным моментам этой темы.
PHP - что где взять?
Расклад примерно такой.
Документацию и учебный материал тащим отсюда: php.net и особенно настоятельно я рекомендую взять файл php_manual_en.chm - очень удобно и полезно.
Обеспечение исполнения программ в Интернете должен предоставить ваш хостер.
Для исполнения программ на вашей рабочей станции следует установить среду исполнения. Я рекомендую бесплатную оболочку Денвер -
Денвер ::
http://kocby.ru/post/webmaster/php-mysql/denver/
Установка Денвера проста и интуитивно понятна. Если пошли какие-то косяки, а форум помощи по Денверу вам не помог, то тогда, очевидно, мешает какая-та резедентная софтинка третьих фирм. Наиболее часто это Skype, Antivirus Kaspersky и т.д.
Что следует сделать в самом начале?
Попробуйте запустить такую вот простенькую программулину.
http://kocby.ru/post/webmaster/text/soft155.zip
Строка 1 в нашей программе точно соответствует строке -
error_reporting(E_ALL);
... и служит для того, чтобы выводились ВСЕ ошибки в нашей программе, включая ошибку на строке 2. Если убрать (закомментить) первую строчку, то предупреждение на второй строке...
Notice: Undefined variable: b in test1.php on line 2
... не будет выдаваться, программа просто присвоит $a значение "" и на этом все.
Я это к чему? К тому, что использование error_reporting(-1); есть очень хорошая и полезная привычка, которую следует в себе культивировать.
Тонкость: error_reporting(-1); лучше, чем error_reporting(E_ALL); т.к. является универсальной, работает ок на любой версии PHP.
Функция на строке 3 устанавливает по умолчанию московское время. Это очень полезно, т.к. софт будет работает корректно со временем на всех серверах, включая те, которые установлены за пределами Москвы. Если ваш проект расчитан не на (или не только на) русскоязычную публику, возможно, над временем надо будет более глубоко задуматься.
Функция на строке 6 выведет основные параметры среды PHP, включая номер версии.
Основные боевые версии PHP по состоянию на июль'2010 - 5.3.х и 5.2.х
На самом деле сегодня в тестовом виде уже есть версия 6, но в боевом состоянии последняя версия 5.3.2 от 04.03.2010.
Реально вы увидите на своем сервере версию из серии 5.3.х или 5.2.х.
Несмотря на то, что версия 5.3. вышла уже давно, многие хостеры, наученные горьким опытом, не спешат переходить на нее.
Горький опыт предыдущих переходов
Самый, пожалуй, печальный опыт был получен во время перехода на версию 4.2.0, когда дефолтное значение для register_globals было изменено с ON на OFF, в результате многие программы мгновенно устарели, перестали нормально работать и потребовали, как минимум, глубокой переработки.
Тема register_globals получила свое продолжение в новой версии 5.3., где она вообще была объявлена вне закона (DEPRECATED).
Теперь хостеры не спешат с переходом, ждут, когда все программеры (включая самых ленивых) переделают свои программы в полном соответствии с требованиями версии 5.3.х.
Полагаю, будет полезным держать у себя перед глазами все устаревшее, потому цитирую...
Deprecated features in PHP 5.3.x
PHP 5.3.0 introduces two new error levels: E_DEPRECATED and E_USER_DEPRECATED. The E_DEPRECATED error level is used to indicate that a function or feature has been deprecated. The E_USER_DEPRECATED level is intended for indicating deprecated features in user code, similarly to the E_USER_ERROR and E_USER_WARNING levels.
The following is a list of deprecated INI directives. Use of any of these INI directives will cause an E_DEPRECATED error to be thrown at startup.
define_syslog_variables
register_globals
register_long_arrays
safe_mode
magic_quotes_gpc
magic_quotes_runtime
magic_quotes_sybase
Comments starting with '#' are now deprecated in .INI files.
Deprecated functions:
call_user_method() (use call_user_func() instead)
call_user_method_array() (use call_user_func_array() instead)
define_syslog_variables()
dl()
ereg() (use preg_match() instead)
ereg_replace() (use preg_replace() instead)
eregi() (use preg_match() with the 'i' modifier instead)
eregi_replace() (use preg_replace() with the 'i' modifier instead)
set_magic_quotes_runtime() and its alias, magic_quotes_runtime()
session_register() (use the $_SESSION superglobal instead)
session_unregister() (use the $_SESSION superglobal instead)
session_is_registered() (use the $_SESSION superglobal instead)
set_socket_blocking() (use stream_set_blocking() instead)
split() (use preg_split() instead)
spliti() (use preg_split() with the 'i' modifier instead)
sql_regcase()
mysql_db_query() (use mysql_select_db() and mysql_query() instead)
mysql_escape_string() (use mysql_real_escape_string() instead)
Passing locale category names as strings is now deprecated. Use the LC_* family of constants instead.
The is_dst parameter to mktime(). Use the new timezone handling functions instead.
Deprecated features:
Assigning the return value of new by reference is now deprecated.
Call-time pass-by-reference is now deprecated.
The use of {} to access string offsets is deprecated. Use [] instead.
Прошерстите свои программки на предмет использования вышеуказанного и внесите необходимые изменения.
И закончим этот выпуск на веселой ноте...
GOTO или идите на...
Сначала я думал, что это такая шутка юмора, когда мне сказали что в версии 5.3. теперь будет goto.
Потом убедился, что эта шутка вполне серьезная. Действительно, в версии 5.3. теперь есть goto!
Я понимаю, что в данном случае это всего лишь multi-level break. Но использовать goto вряд ли целесообразно. Хотя бы в плане совместимости со старыми версиями.
Автор рисунков: http://xkcd.com/292
Отклики на этот выпуск можно публиковать здесь: http://kocby.ru/gb/web155/
У меня на сегодня все. Спасибо за внимание. Пишите.
::::::::::::::::::::::::
::: Vladimir Abramov :::
::: va@sumat.ru ::::::::
::: http://sumat.ru/ :::
::::::::::::::::::::::::
### Конец выпуска.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|