Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: синаксис php

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: синтаксис php
jonston
Отправлено: 29 Марта, 2011 - 17:09:43
Post Id



Посетитель


Покинул форум
Сообщений всего: 455
Дата рег-ции: Март 2011  


Помог: 3 раз(а)




Здравствуйте друзья!Подскажите плиз что обозначает конструкция:
PHP:
скопировать код в буфер обмена
  1.  
  2.         switch ($this->validation)
  3.         {
  4.                 case 'cs'       : $session_id = ($this->sdata['session_id'] != '0' AND $this->cookies_exist == TRUE) ? TRUE : FALSE;
  5.                         break;
  6.                 case 'c'        : $session_id = ($this->cookies_exist) ? TRUE : FALSE;
  7.                         break;
  8.                 case 's'        : $session_id = ($this->sdata['session_id'] != '0') ? TRUE : FALSE;
  9.                         break;
  10.         }
  11.  

в частности этот кусок:
PHP:
скопировать код в буфер обмена
  1.  
  2. ($this->sdata['session_id'] != '0' AND $this->cookies_exist == TRUE) ? TRUE : FALSE
  3.  

Спасибо!


-----
$i = 0;
$i = $i++ + ++$i; ?
 
 Top
EuGen Администратор
Отправлено: 29 Марта, 2011 - 17:24:18
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Это краткая запись ветвления. Означает:
$var= {истинно выражение}?"значение1":"значение2"
В Вашем примере, если верно выражение ($this->sdata['session_id'] != '0' AND $this->cookies_exist == TRUE), то $session_id будет присвоено равным TRUE, иначе FALSE


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
OrmaJever Модератор
Отправлено: 29 Марта, 2011 - 17:40:26
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




Что бы проще было понять это "краткая форма if".
(Условие) ? если условие true : если условие false;
Например:
PHP:
скопировать код в буфер обмена
  1. echo (1 == 1) ? '1 равен 1' : '1 не равен 1';
  2. // выведет первое
  3. echo (1 == 2) ? '1 равен 2' : '1 не равен 2';
  4. // выведет второе.


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
jonston
Отправлено: 29 Марта, 2011 - 17:44:04
Post Id



Посетитель


Покинул форум
Сообщений всего: 455
Дата рег-ции: Март 2011  


Помог: 3 раз(а)




EuGen пишет:
Это краткая запись ветвления. Означает:
$var= {истинно выражение}?"значение1":"значение2"
В Вашем примере, если верно выражение ($this->sdata['session_id'] != '0' AND $this->cookies_exist == TRUE), то $session_id будет присвоено равным TRUE, иначе FALSE


Благодарю за помощь!
То есть это тоже самое что и:
PHP:
скопировать код в буфер обмена
  1.  
  2. if($this->sdata['session_id'] != null && $this->cookies_exist == true){
  3.     $sdata['session_id'] = true;
  4. }else{
  5.     $sdata['session_id'] = false;
  6. }
  7.  

я правильно понял?


-----
$i = 0;
$i = $i++ + ++$i; ?
 
 Top
Okula
Отправлено: 29 Марта, 2011 - 17:50:57
Post Id



Участник


Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010  


Помог: 42 раз(а)




jonston, тернарный оператор это
 
 Top
jonston
Отправлено: 29 Марта, 2011 - 17:52:59
Post Id



Посетитель


Покинул форум
Сообщений всего: 455
Дата рег-ции: Март 2011  


Помог: 3 раз(а)




Okula пишет:
jonston, тернарный оператор это

хорошо почитаю про него.
А есть еще типа таких сокращения?


-----
$i = 0;
$i = $i++ + ++$i; ?
 
 Top
EuGen Администратор
Отправлено: 29 Марта, 2011 - 17:53:25
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Верно,
Только условие в if будет:
if($this->sdata['session_id'] != '0' AND $this->cookies_exist == TRUE)


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
jonston
Отправлено: 29 Марта, 2011 - 17:56:10
Post Id



Посетитель


Покинул форум
Сообщений всего: 455
Дата рег-ции: Март 2011  


Помог: 3 раз(а)




EuGen пишет:
Верно,
Только условие в if будет:
if($this->sdata['session_id'] != '0' AND $this->cookies_exist == TRUE)

а ну да, там же ноль '0'.
(Добавление)
А есть ли еще какие нибудь "примочки" в синтаксисе типа этого?


-----
$i = 0;
$i = $i++ + ++$i; ?
 
 Top
Okula
Отправлено: 29 Марта, 2011 - 18:53:24
Post Id



Участник


Покинул форум
Сообщений всего: 1389
Дата рег-ции: Окт. 2010  


Помог: 42 раз(а)




jonston пишет:
А есть ли еще какие нибудь "примочки" в синтаксисе типа этого?

Это не примочки Улыбка тернарный оператор только 1
Но можно написать свой шаблонизатор который будет обробатывать страницу так как вам нужно.
 
 Top
JustUserR
Отправлено: 29 Марта, 2011 - 19:33:32
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




jonston пишет:
А есть ли еще какие нибудь "примочки" в синтаксисе типа этого?
Осуществление использование предполагаемой синтакической констуркции позволяет проводить формирование кондициональных выражений класса короткого замыкания, на основании которых возможно обеспчения формирование последовательностей действенных составляющих элементов, для которых требуется осуществление связного или альтернативного исполнения
Конструкция expr1 && expr2 && expr3 позволяет осуществлять последовательное выполнение предполагаемых элементов, в случае осуществления включения true-значения для предшествующего составляющего элемента
Конструкция expr1 || expr2 позволяет осуществлять альтернативное выполнение предполагаемых элементов, в случае осуществления включения false-значения для предшествующего составляющего элемента


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB