Я рефакторинг некоторого кода PHP и обнаружил, что определенные вложенные комбинации
if () :
и
if () {
генерировать синтаксические ошибки. Не то чтобы я обычно смешивал их, но мне нравится делать частые проверки синтаксиса, когда я пишу код, и из-за этого у меня постоянно возникала ошибка синтаксиса.
Пример - генерирует синтаксическую ошибку:
if ( $test == 1 ) :
if ( $test2 == 'a' ) {
if ( $test3 == 'A' ) {
} else {
}
}
else :
echo 'test2';
endif;
Пример - НЕ генерирует синтаксическую ошибку:
if ( $test == 1 ) :
if ( $test2 == 'a' ) :
if ( $test3 == 'A' ) :
else :
endif;
endif;
else :
echo 'test2';
endif;
Может кто-нибудь объяснить мне, почему первый блок кода генерирует ошибку?