Вопрос по синтаксису.

  • Автор темы Автор темы proWoke
  • Дата начала Дата начала

proWoke

Новичок
Вот сейчас перечитываю главу из книги Котерова про организацию библиотек. И вот такой кусочек кода есть:
PHP:
$sep = getenv("COMSPEC")? ";" : ":";
ini_set("include_path", ini_get("include_path").$sep.getenv("DOCUMENT_ROOT")."/lib");
Я понимаю что он делает. Но вот строчку $sep = getenv("COMSPEC")? ";" : ":"; я понимаю лишь интуитивно.
Что значит
PHP:
     ? ";" : ":";
 
а с 5.3 можно писать и так:

PHP:
$var = 'Я мега програмер';

echo $var ?: 'Я мега ламер';

я понимаю лишь интуитивно
Блин, ДА ЧТО СЛОЖНОГО открыть мануал и посмотреть? Там же ВСЕ есть. Не знаешь английского - учись по старой версии русского мануала.
 
Вот сейчас перечитываю главу из книги Котерова про организацию библиотек. И вот такой кусочек кода есть:
PHP:
$sep = getenv("COMSPEC")? ";" : ":";
ini_set("include_path", ini_get("include_path").$sep.getenv("DOCUMENT_ROOT")."/lib");
Я понимаю что он делает. Но вот строчку $sep = getenv("COMSPEC")? ";" : ":"; я понимаю лишь интуитивно.
Что значит
PHP:
     ? ";" : ":";
а с 5.3 можно писать и так:

PHP:
$var = 'Я мега програмер';

echo $var ?: 'Я мега ламер';

Блин, ДА ЧТО СЛОЖНОГО открыть мануал и посмотреть? Там же ВСЕ есть. Не знаешь английского - учись по старой версии русского мануала.
вообще то не стоит так кричать, тернарный оператор - это достаточно спорная конструкция с точки зрения понимания, и я так думаю автор не понял не того что делает конструкция, а зачем $sep меняется с : на ;

По сути данный код вообще спорный...
$sep надо было бы написать $separator, ну и вообще.
 
>По сути данный код вообще спорный...
:)
Для этих целей придумали константу PATH_SEPARATOR.
 
вообще то не стоит так кричать, тернарный оператор - это достаточно спорная конструкция с точки зрения понимания
Ололо. С точки зрения понимания тут вообще ничего сложного нет, это сокращенный IF. Надо просто базовый синтаксис знать, как PHP интерпретирует типы в boolean.
 
Ололо. С точки зрения понимания тут вообще ничего сложного нет, это сокращенный IF. Надо просто базовый синтаксис знать, как PHP интерпретирует типы в boolean.
ололо Триум
PHP:
$var = 'Я мега програмер';
детский сад
 
ололо , зря наезжаете,в тернарном операторе нет ничего сложного,но если не знать что он есть и как называется отгуглить знак вопроса - задача нетривиальная
маны все тоже сразу не осилишь - букв много,поиск не вырулит
ИЧСХ дали ТС название,и сразу всё понял

P.S.
PHP:
php > echo $vard?: 'Я мега ламер'; 
PHP Notice:  Undefined variable: vard in php shell code on line 1
Я мега ламер
ну вы понели
 
proWoke
PHP:
<?php

$var = false;
if( ! $var ){
    $to_print = 'var is false';
}else{
    $to_print = 'var is true or other';
}
print $to_print;

?>
альтернатива
PHP:
<?php
$var = false;
print $var ? 'var is false' : 'var is true or other';
?>
 
ололо , зря наезжаете,в тернарном операторе нет ничего сложного,но если не знать что он есть и как называется отгуглить знак вопроса - задача нетривиальная
маны все тоже сразу не осилишь - букв много,поиск не вырулит
ИЧСХ дали ТС название,и сразу всё понял

P.S.
PHP:
php > echo $vard?: 'Я мега ламер'; 
PHP Notice:  Undefined variable: vard in php shell code on line 1
Я мега ламер
ну вы понели
Не поняли. Это наезд такой на удобную конструкцию?

- аналогично
 
удобная конструкция к сожалению
PHP:
empty($vard)?'placeholder':$vard
не заменяет
 
Сверху