я был в классе, на другой день, и этот фрагмент кода:Порядок старшинства с вложенными трехкомпонентных операторами
<?php
//Intialize the input
$score=rand(50,100);
//Determine the Grade
$grade=($score>=90)?'A':(
($score>=80)?'B':(
($score>=70)?'C':(
($score>=60)?'D':'F')));
//Output the Results
echo "<h1>A score of $score = $grade</h1>";
?>
В то время я поставил под сомнение порядок операций в рамках вложенных тройных операторов, полагая, что они будет оценивать изнутри, то есть он будет оценивать, если бы $ score был> = 60 сначала, тогда, если $ score> = 70 и т. д. - каждый день обрабатывать весь стек независимо от оценки.
Для меня кажется, что эта конструкция должна следовать тому же порядку приоритета, который задается математическим операторам, сначала разрешая внутреннее множество скобок, а затем разрабатывая, если только не существует порядка операций, уникальных для троичного.
К сожалению, дискуссия в классе быстро стала одержанием аргументов, когда я просто хотел понять, как это работает. Поэтому мои вопросы два:
(1) Как бы это заявление меня интерпретировало и почему?
и
(2) Является ли какой-то трассировки стека или пошагово инструмент, который позволил бы мне посмотреть, как этот код выполняет?
Это тривиально легко проверить для себя. – meagar
Только тривиально для тех, кто знает, как – SeanOlson