Когда вы загружаете index.php?post=myFile
, вы генерируете следующий элемент в суперглобальном массиве $_GET
:
$_GET = array ("post" => "myFile");
Тогда $post = empty($_GET['post']) ? '' : $_GET['post'];
объявляет $post = "myFile"
.
Это означает, что if (empty($post)) {
оценивается как false
(поскольку он не пустой, это myFile
), а блок switch-case
игнорируется.
Условие else
выполнено. $titulo = 'Post';
Теперь, если вы хотите, чтобы блок переключателя выполнялся, вы должны:
- Изменить
if (empty($post)) {
на if (!empty($post)) {
.
Что касается будущих проблем, которые могут возникнуть у вас в блоке переключателя, убедитесь, что вы одинаково сопоставляете значение для $pagina
при записи каждого случая. Если вы не уверены, с какими значениями вы работаете или что выполняете, просто добавьте эхо в каждом случае, чтобы уточнить.
Я говорю это, потому что posts/myFile
не та же строка, что и myFile
.
После более подробного обсуждения других гиперссылок я рекомендую изменить значение по умолчанию для $pagina
и расширить логику if
, чтобы сделать ее более понятной.
$pagina = empty($_GET['p']) ? '' : $_GET['p']; // I changed 'home' to ''
if ($post != '' || ($post == '' && $pagina != '')) { // I changed the logic