Поместите это в интерпретатор PHP, и он не покажет никаких ошибок. Это не выглядит правильным для меня. Кто-нибудь может пролить свет на Зачем это работает? Я действительно ищу некоторое понимание лексера / парсера.
<?php
-01;[];[];[];4;[[-1]];
Хотя код, кажется, имеет правильный синтаксис, он ничего не делает как есть.
Отсутствие разрывов строк, поэтому все выглядит смешанным, но это делает иметь правильный синтаксис с точкой с запятой в конце каждого оператора.
Если бы вы переписали этот код, чтобы сделать его более разборчивым, вы можете сделать это:
-01; // This is just a negative number with a meaningless 0 padded in front of it.
[]; // This is an empty array that isn't assigned to any variable, hence useless;
[]; // same
[]; // same
4; // Again, a number that isn't assigned to any variable nor expression.
[[-1]]; // This is a multi-dimensional array with -1 as the inner arrays value, that isn't assigned to anything either.
Действительный код, но бесполезный.
Несмотря на ваши предположения, этот код имеет синтаксическую ошибку в [];
а также [[-1]];
:
Ошибка синтаксического анализа PHP: синтаксическая ошибка, неожиданное ‘[‘ in …. on line ….
Также код в целом не работай. Но другие части кода являются законными; Он имеет начальный тег PHP (конечный тег не требуется в определенных обстоятельствах, например, когда вы не включаете этот файл в другой файл) и два константных выражения.
-01
а также 4
постоянные выражения, которые оценивают -1 а также 4 соответственно. Эти выражения сопровождаются ;
который обозначает конец утверждений. Тогда эти заявления Работа (Не выдавать ошибку) пока они не выполняют ничего полезного для вас. Парсер не ищет полезность или же бесполезность в коде. Вы должны написать код, который будет делать что-то значимое, а не просто какие-то мусорные выражения, которые потребляют только ресурсы (время и память).