2016-04-05 2 views
0

Я не уверен, как операция сравнения узла массива работает в отношении присвоения 'true' одному узлу массива. Является ли это альтернативным использованием синтаксиса Ternary? Было бы полезно либо объяснение, либо ссылка на ссылку PHP (я даже не знаю, как искать это). Заранее спасибо.Что это за структура синтаксиса и как она работает?

// RESOLVE myvar TO BOOLEAN 
$atts['myvar'] = 'true' == $atts['myvar']; 
+0

В комментарии говорится, что делает код: 'solve myvar to boolean', хотя он не разрешает его _true_ boolean, а просто строку' true'. Ужасный бит кода, если вы спросите меня. 'settype ($ atts ['myvar'], 'boolean')' будет лучше. –

+0

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

+0

Спасибо вам обоим. – fslap

ответ

2

Вы должны прочитать это так:

$atts['myvar'] = ('true' == $atts['myvar']); 

(экономия на кронштейнах никогда не стоит копейки). При запуске она будет сравнивать фактическое содержание $atts['myvar'] с строкойtrue (4 буквы) и затем перезаписать $atts['myvar'] с результатом сравнения, который будет булева тогда. Если он равен строке «true», тогда результат будет boolean true, для чего-нибудь еще он станет boolean false. Другими словами, он преобразует «string boolean» в обычный логический.

+0

Большое спасибо за краткий ответ. Это очень помогает. – fslap

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