Почему не передается значение из переменной?

Ссылка скопирована
PHP
1 ответ

Всем привет, подскажите пожалуйста в чем вообще проблема, видимо я чего-то не понимаю. Я хочу получить идентификатор статьи, который находится в файле ниже, назовем его 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'; ?>

Этот код откуда вызываете?

  • FVest, сделайте проверку содержимого
    var_dump(rawurlencode($PAGE_ID));
  • AUser0, здравствуйте, вот такой результат string(1) "19"
  • FVest, а вот так не должно быть. У вас строка из 2 символов - просто обязано быть string(2). Вы точно дали то, что вывел скрипт?

    Не говоря уж о том, что первой строкой $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
    Роман IT Ответ

    Проблема с передачей значения из переменной может возникать по разным причинам. Вот несколько возможных причин и способы их решения:

    1. Переменная не была объявлена или инициализирована:
    Убедитесь, что переменная была объявлена и инициализирована перед попыткой передачи ее значения. Например, если вы используете PHP, убедитесь, что переменная была объявлена с помощью оператора `$`.

    2. Ошибка в имени переменной:
    Проверьте, что вы правильно указали имя переменной при попытке передачи значения. Проверьте наличие опечаток или неверного регистра.

    3. Область видимости переменной:
    Если переменная объявлена внутри функции или другого блока кода, убедитесь, что она доступна в нужной области видимости. Попробуйте использовать оператор `global` или передавать переменную как параметр функции.

    4. Проблема с передачей значения в функцию:
    Если вы пытаетесь передать значение переменной в функцию, убедитесь, что вы правильно передаете значение в аргумент функции.

    Пример использования тега `

    ` для отображения кода на PHP:
    <pre lang="php">
    $variable = "value";
    echo $variable;

    ` для отображения кода на PHP: <pre lang="php"> $variable = "value"; echo $variable;

    Если после проверки всех вышеперечисленных причин проблема с передачей значения из переменной остается, пожалуйста, уточните более подробную информацию о вашем коде и ситуации, чтобы мы могли помочь вам более точно.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно