Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: <условие>?<выражение,выполняющее условие,если true условие>:<выражение,если услвие false>
 
 автор: lgar   (23.06.2007 в 20:47)   письмо автору
 
 

после функции parse_url,идет следущий код:

if ($url['scheme'] == 'https')
    {
        $url['port'] = ($url['port'] ? $url['port'] : 443);
    }
    else
    {
        $url['port'] = ($url['port'] ? $url['port'] : 80);
    }
    $url['path'] = ($url['path'] ? $url['path'] : '/');

В докуметации пхп,ничего про $url['port'],хотя где-то я читал,что в parse_url,она присутствует,но не в этом деле,я не понимаю следующую строчку

$url['port'] = ($url['port'] ? $url['port'] : 443);

покапался и нашел следующее:

<условие>?<выражение,выполняющее условие,если true условие>:<выражение,если услвие false>

Вопрос,какое здесь условие?

   
 
 автор: Unkind   (23.06.2007 в 20:55)   письмо автору
 
   для: lgar   (23.06.2007 в 20:47)
 

На самом деле код
$url['port'] = ($url['port'] ? $url['port'] : 443);
не совсем корректен.
Если $url['port'] существовать не будет, то появится Notice: undefined index port ...
Нужно заменить на
$url['port'] = isset($url['port']) ? $url['port'] : 443;

   
 
 автор: lgar   (23.06.2007 в 21:11)   письмо автору
 
   для: Unkind   (23.06.2007 в 20:55)
 

спасибо,но всё-таки условие какое.Например порт 8080

   
 
 автор: Unkind   (23.06.2007 в 21:48)   письмо автору
 
   для: lgar   (23.06.2007 в 21:11)
 

В PHP пустые переменные: string(0) и переменные, равные нулю: int(0), float(0), а также NULL равны bool(false).
Если переменная не существует, то возвращается NULL.
Следовательно, получается:
$url['port'] = (NULL ? $url['port'] : 443);
<=>
$url['port'] = (false ? $url['port'] : 443);
Условие - "правильная" ли переменная $url['port']?

Например порт 8080
8080 не является пустой строкой, не является нулем. Значит условие "правильности" будет соблюдено и $url['port'] станет равно 8080.

   
 
 автор: lgar   (23.06.2007 в 22:24)   письмо автору
 
   для: Unkind   (23.06.2007 в 21:48)
 

большое спасибо

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования