Что означает эта строка кода php?(CodeIgniter) - PullRequest
0 голосов
/ 14 июня 2011

Итак, сегодня я играю с исходным кодом http://bambooinvoice.org/ и обнаружил следующую строку:

$id = ($this->input->get_post('id')) ? (int) $this->input->get_post('id') : $this->uri->segment(3);

Я уже понимаю базовое использование синтаксиса в codeigniter, но надеюсь, что кто-то может сказать мне, что такоеиспользование этого символа (?) между двумя синтаксисом?Если это какая-то техника, как называется техника?Чего он пытается добиться с помощью этой строки кода?

Спасибо.

Ответы [ 4 ]

2 голосов
/ 14 июня 2011

Ternary оператор;такой же как

if(($this->input->get_post('id')) == true)
{ 
$id =(int) $this->input->get_post('id')
} 
else 
{
$id=$this->uri->segment(3);
}
1 голос
/ 14 июня 2011

Это сокращение:

if($this->input->get_post('id'))
   $id = $this->input->get_post('id');
else
   $id = $this->uri->segment(3);

Это троичный оператор: Синтаксис:

$id = (condition) ? value_when_condition_is_true : value_when_condition_is_false;
1 голос
/ 14 июня 2011

Привязать переменную post "id" к $ id, если она установлена. В противном случае используйте значение третьего URL-сегмента.

0 голосов
/ 14 июня 2011

$ id = ($ this-> input-> get_post ('id'))? (int) $ this-> input-> get_post ('id'): $ this-> uri-> сегмент (3);

это: z = (x> y? X: y); это как:

if (x > y)
{
z = x;
}
else
{
z = y;
}

this: $ this-> input-> get_post ('id')

означает, что вы находитесь в объекте (классе) с другим классом "input" и используете методы get_post ().

это: (int) x приведите x как int.

Он выбирает, как назначать идентификатор, если get_post () отличается от 0 или "" использует значение uri-сегмент (3)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...