Регистрация | Вход Мой раздел   Общение   Развлечения   Полезное   Информация     Поставить закладку Сделать стартовой  
Форумы
Форумы: общие
Новые сообщения
Закладки
Ваши темы
Ваши сообщения

Самые ... темы
Темы без ответов
Поиск
Форумы: альтернативаnew
Форумы: клубные
Форумы: региональные

Общение
Начало
Форумы
Альтернатива
Чат
Дневники
Клубы
Поэзия
Споры
Фотоальбомы
Знакомства
Мессенджер
Пользователи

Мобильная версия порталаnew
33b.ru » Форум » Конкурсы, курсы и встречи » Курсы из отдела программирование » PHP КУРС » Тонкие особенности PHP или мини-FAQ
Начать новую тему   Ответить на тему
Распечатать тему
Автор Сообщение
Vasya_Shpilchin
Знаток
Знаток

avatar


Зарегистрирован:
2005-03-04
Кол-во пунктов: 3709
Откуда: Россия

СообщениеДобавлено: 12 апр. 2008 12:16
   Заголовок сообщения: Тонкие особенности PHP или мини-FAQ
  Ответить с цитатой    Распечатать сообщение

Язык программирования PHP имеет массу тонкостей в работе встроенных функций и синтаксиса.

В: В чем разница между открывающими дескрипторами <?php и <??
O: Короткий дескриптор <? используется в XML. Это делает невозможным обработку документа, с совмещенным PHP и XML - кодом. Кроме того, по-умолчанию дескриптор <? в PHP отключен. Включить его поддержку можно, установив для параметра short_open_tag значение On в php.ini

В: В чем разница между одинарной кавычкой (') и двойной кавычкой (")?
О: Эту синтаксическую особенность можно продемонстрировать на примере:
Код:
<?php
$var=10;
echo 'Значение переменной: $var';
echo '<br>';
echo "Значение переменной: $var";
?>

Даст результат:
Цитата:

Значение переменной: $var
Значение переменной: 10

Как видите, в первом случае PHP воспринял $var как текст, во втором - как имя переменной. Соответственно, на месте $var во втором случае мы увидели значение переменной $var, при чем если между двойными кавычками встречается символ $, обозначающий переменную, то PHP воcпримет следующий за ним набор символов (вплоть до первого символа, который не разрешен для имени переменной), как имя переменной. Если эта переменная не была объявлена, PHP сгенерирует ошибку.
Кроме того, существует разница при передаче спец. символов, например перенос строки. Попробуйте вывести на печать строку
Это строка
в одинарных и двойных кавычках, и посмотрите HTML-код полученной страницы в обоих случаях. Одинарные кавычки заставят echo пропечатать символами. При использовании двойных кавычек, этот символы интерпретируется как перенос строки.

В: Код echo "<a href="http://www.site.ru">"; не работает! В чем проблема?
О: Проблема в том, что PHP не в состоянии определить, где вы закрываете кавычки ссылки, а где - строку. Таким образом, открытые после echo кавычки закрываются кавычками перед http. Есть 2 способа решить проблему:
1)Поменть кавычки, ограничивающие строку, передаваемую echo, на одинарные ('). Недостаток этого варианта - он не решит проблему, если в передаваемой функции echo содержит и двойные, и одинарные кавычки.
2)Экранировать кавычки. Для этого перед проблемными кавычками в строке поставьте слеш (\), чтобы строка имела такой вид:
echo "<a href=\"http://www.site.ru\">";
Это универсальный вариант. Конечно же, если строка обозначена одинарными кавычками, в неё не нужно экранировать двойные, и наоборот.

В: Если ли разница между функциями print и echo в выводе текста?
О: Разница есть. Для функции echo можно передавать несколько аргументов, через запятую. Таким образом код:
Код:

echo 'a','b','c';

полностью корректен. Функция print может принимать только один аргумент.
Функция print при вызове возвращает значение true, а echo ничего не возвращает, поэтому работает на доли микросекунды быстрее icon_smile.gif


>>> Продолжение следует >>>
_________________
Тише едешь - дальше будешь от пункта назначения =)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Гостевая книга
sgrey
Инвентарь
Инвентарь

avatar


Зарегистрирован:
2004-12-21
Кол-во пунктов: 58070
Откуда: Сингапур

СообщениеДобавлено: 12 апр. 2008 18:08
   Заголовок сообщения: Тонкие особенности PHP или мини-FAQ
  Ответить с цитатой    Распечатать сообщение

в php 6 не будет коротких тегов
_________________
Memento mori
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Гостевая книга Почитать дневник пользователя Посмотреть фотоальбомы пользователя
bios-hypnos
Гуру флейма
Гуру флейма

avatar

Специальные звания:
Почётный житель 08.2004

Зарегистрирован:
2003-06-26
Кол-во пунктов: 31402
Откуда: Острова Хэрда и МакДональда

СообщениеДобавлено: 18 Май 2008 12:28
   Заголовок сообщения: Re: Тонкие особенности PHP или мини-FAQ
  Ответить с цитатой    Распечатать сообщение

Vasya_Shpilchin писал(а) (12 апр. 2008 10:16 ) :
В: В чем разница между одинарной кавычкой (') и двойной кавычкой (")?
О: Эту синтаксическую особенность можно продемонстрировать на примере:
Код:
<?php
$var=10;
echo 'Значение переменной: $var';
echo '<br>';
echo "Значение переменной: $var";
?>

Даст результат:

Как видите, в первом случае PHP воспринял $var как текст, во втором - как имя переменной. Соответственно, на месте $var во втором случае мы увидели значение переменной $var, при чем если между двойными кавычками встречается символ $, обозначающий переменную, то PHP воcпримет следующий за ним набор символов (вплоть до первого символа, который не разрешен для имени переменной), как имя переменной. Если эта переменная не была объявлена, PHP сгенерирует ошибку.
Кроме того, существует разница при передаче спец. символов, например перенос строки. Попробуйте вывести на печать строку
Это строка
в одинарных и двойных кавычках, и посмотрите HTML-код полученной страницы в обоих случаях. Одинарные кавычки заставят echo пропечатать символами. При использовании двойных кавычек, этот символы интерпретируется как перенос строки.

Важная деталь: при двойных кавычках интерпретер не «всего-лишь» заменяет переменные и спецсимволы на их значение, а сначала ищет их во всём наборе символов от начала до конца. Так как при одинарных кавычках этого не происходит, то и обработка, соответственно, быстрей. При объёмных проектах разница во времени выполнения скрипта становится ощутимой.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Гостевая книга Зайти в клуб пользователя Почитать дневник пользователя Посмотреть фотоальбомы пользователя
BobiKK
Философ
Философ

avatar


Зарегистрирован:
2006-04-02
Кол-во пунктов: 5782
Откуда: Германия

СообщениеДобавлено: 18 Май 2008 12:54
   Заголовок сообщения: Тонкие особенности PHP или мини-FAQ
  Ответить с цитатой    Распечатать сообщение

http://php./.../speed.html
_________________
8.upto(17) { |i| do_nothing(work) if !boss }
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Гостевая книга
Vasya_Shpilchin
Знаток
Знаток

avatar


Зарегистрирован:
2005-03-04
Кол-во пунктов: 3709
Откуда: Россия

СообщениеДобавлено: 02 ноя. 2008 11:06
   Заголовок сообщения: Тонкие особенности PHP или мини-FAQ
  Ответить с цитатой    Распечатать сообщение


Цитата:

При объёмных проектах разница во времени выполнения скрипта становится ощутимой.

В объемных проектах используются шаблонизаторы, они работают по другому принципу.

В: Что такое register_globals?
О: Опция register_globals регестрирует элементы суперглобальных массивов как обычные переменные. Это, например, элементы массивов $_REQUEST, $_GET, $_POST, $_COOKIE, $_SERVER и т.п.

В: Почему многие программисты рекомендуют отключать register_globals?
О: Эта опция представляет серьёзную угрозу безопасности, т.к. любой клиент может предопределить значение любой переменной в скрипте. Это представляет широкие возможности для XSS, SQL-инъекций и других видов атак, т.к. большинство тех, кто включает register_globals для упрощения написания скрипта, даже не задумываются о обработке массива $_SERVER. Следует отметить, чт, начиная с версии 4.3, register_globals по-умолчанию отключен.

В: Зачем нужен символ "@" в PHP
О: Этот символ используется для подавления ошибок в конкретной конструкции. Например код:
Код:
<?php
echo $_GET['var'];
?>

Выведет ошибку Notice, если переменная var не будет передана. Если же перед echo поставить @, ошибка отображена не будет.

В: Почему не рекомендуется использовать "@"?
О: Несмотря на то, что ошибка не выводится, она все равно обрабатывается препроцессором, что тормозит работу скрипта. Поэтому рекомендуется при отладке включать отображение всех ошибок и устранять их.
_________________
Тише едешь - дальше будешь от пункта назначения =)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Гостевая книга
Начать новую тему    Ответить на тему Часовой пояс: GMT + 3
33b.ru » Форум » Конкурсы, курсы и встречи » Курсы из отдела программирование » PHP КУРС » Тонкие особенности PHP или мини-FAQ
Страница 1 из 1

 

Похожие темы:
   Форум   Тема   Автор   Последнее 
Нет новых сообщений Мода Мини-юбка!
[На страницу: 1, 2, 3...31, 32, 33, 34, 35, 36]
Olen-ka 07 мар. 2019 14:20
ribalisa Посмотреть последнее сообщение
Нет новых сообщений Обсуждение \ рассказы о встречах МИНИ ВСТРЕЧА В ЕКАТЕРИНБУРГЕ (как это прошло)
[На страницу: 1, 2, 3, 4, 5, 6, 7]
Terss 05 окт. 2016 00:00
RnBLikerша Посмотреть последнее сообщение
Нет новых сообщений Курьёзные новости Армия обороны Израиля сконструировала мини-бульдозер
Artua07 02 дек. 2016 19:14
RnBLiker Посмотреть последнее сообщение
Нет новых сообщений Косметика и мир ароматов Тонкие губы
[На страницу: 1, 2]
макакаррова 07 июл. 2017 23:41
FotinniA Посмотреть последнее сообщение
Нет новых сообщений Животные Немецкая овчарка. Особенности породы
jako102 25 фев. 2018 18:11
jako102 Посмотреть последнее сообщение
Нет новых сообщений Флуд Умер Булдаков(генерал-Особенности национальной охоты)
[На страницу: 1, 2]
Молоконасос 05 апр. 2019 06:54
VDimf777 Посмотреть последнее сообщение

Мой раздел: Профиль · Настройки · Почта · Гостевая книга · Друзья · Рефералы · Чёрный список · Записная книжка · Адресная книга
Общение: Начало · Форумы · Альтернатива · Чат · Дневники · Клубы · Поэзия · Споры · Фотоальбомы · Знакомства · Мессенджер · Пользователи
Развлечения: Игры · Шахматы · Викторина · Конкурс красоты · Радио · Телевидение
Полезное: Аватары · Смайлики · Гороскопы · Транслит · Декодер · Генератор паролей
Информация: Новости · Правила
© 2002-2019 33B.ru - 33 буквы алфавита Abuse