2013-05-30 5 views
1

Я знаю, что есть сокращение для IF/ELSE заявления в PHP, такие какСтенография для других, если Постулатов в PHP

($user['permissions'] == 'admin' ? true : false); 

Но есть сокращение для ELSE IF заявления, кроме выключателя?

+9

Да, вы можете цепи тройные операторы вместе; не говорите никому, я сказал вам это хотя ;-) –

+0

@Jack = oO Я говорю! –

+0

Это не сокращение, так как это отдельный оператор – zerkms

ответ

2

Я предпочел бы просто использовать elseif() {} все равно

$somevalue == 'foo' ? 'is foo' : ($somevalue == 'bar' ? 'is bar' : 'is neither'); 
3

Что вы можете сделать

Вы можете сохранить сцепление тройных операторов вместе, например:

$x = $condition1 ? true : ($condition2 ? true : false); 

Это выглядит красиво прямо сейчас , но как только ваши условия растут, он быстро становится нечитаемым. Обратите внимание, что круглые скобки являются незаменимыми для этих выражений.

Что вы должны сделать

После того, как вы добавите больше условий, предпочитают использовать правильный синтаксис ветвления; всегда предполагает, что человек, который позже должен взять на себя ваш код психопат, который знает, где вы живете:

$canAccess = false; 
if ($user['permissions'] == 'admin') { 
    $canAccess = true; 
} elseif ($user['permissions'] == 'whatever') { 
    $canAccess = true; 
} 

Да, вы могли бы использовать or в первом заявлении тоже.

Или переключатель:

switch ($user['permissions']) { 
    case 'admin': 
    case 'whatever': 
     $canAccess = true; 
     break; 

    default: 
     $canAccess = false; 
} 
+0

Не отвечает на вопрос. Вопрос состоял в том, что «стенография для других, если», а не «почему нет сокращения». Это было бы лучше в качестве комментария к одному из тройных ответов. –

+0

@ SébastienRenauld Когда-либо слышал о проблеме [XY] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)? ответ «вы делаете неправильно» ответ также является ответом. –

+0

У меня есть. Я также слышал о проблеме «вне темы». Я не говорю, что ваш ответ совершенно неверен (это не так) - он просто не справляется с основным вопросом OP. Он хотел стенографию - лучший ответ - «да, есть стенография, но это кошмар, чтобы читать, вот почему». Предоставление второй половины этого вопроса не отвечает на вопрос ОФ и было бы более уместным в комментариях. –

Смежные вопросы