Почему не передается значение из переменной?
Всем привет, подскажите пожалуйста в чем вообще проблема, видимо я чего-то не понимаю. Я хочу получить идентификатор статьи, который находится в файле ниже, назовем его review и передать его в файл header.
В корневом файле index.php я вывожу
$opt = []; $opt['page_id'] = 0; $content = ob_get_contents(); $content = str_replace($PAGE_ID,$opt['page_id'],$content); echo $content; |
$opt = []; $opt['page_id'] = 0; $content = ob_get_contents(); $content = str_replace($PAGE_ID,$opt['page_id'],$content); echo $content;
в файле review я получаю передаваемый идентификатор так: $opt['page_id'] = $art_id;
теперь пытаюсь его вывести в файле header следующим способом:
$PAGE_ID = 0; echo 'Страница '.$PAGE_ID.'; '; |
$PAGE_ID = 0; echo 'Страница '.$PAGE_ID.'; ';
по итогу я получаю идентификатор страницы и он выводится нормально, но когда я пробую его подставить в запрос или "if", то он вообще никак не отображается, вот пример из кода и скриншот страницы с сайта, результат всегда один. подскажите почему так?
<?php $PAGE_ID = 0; echo 'Страница '.$PAGE_ID.'; '; if($PAGE_ID == 19){ echo 'Ид страницы == 19'; }else echo 'Ид страницы != 19'; ?> |
<?php $PAGE_ID = 0; echo 'Страница '.$PAGE_ID.'; '; if($PAGE_ID == 19){ echo 'Ид страницы == 19'; }else echo 'Ид страницы != 19'; ?>
Дополнительно:
Файл header как вызываете/подключаете?
<?php $PAGE_ID = 0; echo 'Страница '.$PAGE_ID.'; '; if($PAGE_ID == 19){ echo 'Ид страницы == 19'; }else echo 'Ид страницы != 19'; ?> |
<?php $PAGE_ID = 0; echo 'Страница '.$PAGE_ID.'; '; if($PAGE_ID == 19){ echo 'Ид страницы == 19'; }else echo 'Ид страницы != 19'; ?>
Этот код откуда вызываете?
var_dump(rawurlencode($PAGE_ID));
Не говоря уж о том, что первой строкой $PAGE_ID = 0, совсем не 15 или 19!
первые 2 на страницах где подхватывается идентификатор статьи, а третий на главной странице (и других страницах где нет идентификатора, т.е. = 0)
да и вот сам код просто для проверки, как видите идентификатор подхватывается, но почему-то "криво"
<?php echo 'Страница ' . $PAGE_ID . '; '; var_dump(rawurlencode($PAGE_ID)); ?> |
<?php echo 'Страница ' . $PAGE_ID . '; '; var_dump(rawurlencode($PAGE_ID)); ?>
Ответы:
Вы должны использовать одну переменную для хранения значения и передавать ее между файлами, чтобы убедиться, что она актуальна на всех этапах выполнения кода.
Чтобы исправить ситуацию, следует убедиться, что переменная $opt['page_id'] передается из файла review обратно в index.php, а затем используется в файле header.
index.php
<?php // Установка начального значения $PAGE_ID $PAGE_ID = 0; // Включение файла header и передача значения $PAGE_ID include 'header.php'; ?> |
<?php // Установка начального значения $PAGE_ID $PAGE_ID = 0; // Включение файла header и передача значения $PAGE_ID include 'header.php'; ?>
review
<?php // Получение идентификатора статьи $art_id = 123; // $opt['page_id'] = $art_id; ?> |
<?php // Получение идентификатора статьи $art_id = 123; // $opt['page_id'] = $art_id; ?>
header.php
<?php // Получение значения $PAGE_ID из корневого файла echo 'Страница ' . $PAGE_ID . '; '; // Использование значения $PAGE_ID в условии if ($PAGE_ID == 19) { echo 'Ид страницы == 19'; } else { echo 'Ид страницы != 19'; } ?> |
<?php // Получение значения $PAGE_ID из корневого файла echo 'Страница ' . $PAGE_ID . '; '; // Использование значения $PAGE_ID в условии if ($PAGE_ID == 19) { echo 'Ид страницы == 19'; } else { echo 'Ид страницы != 19'; } ?>
- к сожалению не помогло, оно же и осталось тоже самое
в индексе у меня хедер, страницы и футер подключаются так, поэтому инклюд не нуженrequire(BASE_DIR.'/inc/head.php'); require(BASE_DIR.'/pages/'.$routed_file); require(BASE_DIR.'/inc/foot.php');
require(BASE_DIR.'/inc/head.php'); require(BASE_DIR.'/pages/'.$routed_file); require(BASE_DIR.'/inc/foot.php');
- ChatGPT?
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос


Проблема с передачей значения из переменной может возникать по разным причинам. Вот несколько возможных причин и способы их решения:
1. Переменная не была объявлена или инициализирована:
Убедитесь, что переменная была объявлена и инициализирована перед попыткой передачи ее значения. Например, если вы используете PHP, убедитесь, что переменная была объявлена с помощью оператора `$`.
2. Ошибка в имени переменной:
Проверьте, что вы правильно указали имя переменной при попытке передачи значения. Проверьте наличие опечаток или неверного регистра.
3. Область видимости переменной:
Если переменная объявлена внутри функции или другого блока кода, убедитесь, что она доступна в нужной области видимости. Попробуйте использовать оператор `global` или передавать переменную как параметр функции.
4. Проблема с передачей значения в функцию:
Если вы пытаетесь передать значение переменной в функцию, убедитесь, что вы правильно передаете значение в аргумент функции.
Пример использования тега `
` для отображения кода на PHP: <pre lang="php"> $variable = "value"; echo $variable;
Если после проверки всех вышеперечисленных причин проблема с передачей значения из переменной остается, пожалуйста, уточните более подробную информацию о вашем коде и ситуации, чтобы мы могли помочь вам более точно.