codeigniter 4 возвращает 1 после include, include_once, require, require_once

#php #html #codeigniter #codeigniter-4

Вопрос:

Когда я использую вышеупомянутые методы (include, include_once, require, require_once), я получаю 1, написанный в конце каждого содержимого, где я его использовал.

Взглянуть:

 PHP Code:
<!--Footer Section Starts Here-->
    <?= require_once("elements/footer.php"); ?>
<!--Footer Section Ends Here-->

<!--Bottom CSS and JS Starts Here-->
    <?= include_once("elements/bottom_css_and_js.php"); ?>
<!--Bottom CSS and JS Ends Here-->


Html Output
<div>
    <div>
        <p class="copyright">Copyright amp;copy;<script>document.write(new Date().getFullYear());</script> All rights reserved.</p>
    </div>
    <div>
        <p class="copyright">This template is made with <i class="ion-ios-heart text-red" aria-hidden="true"></i> by <a href="http://localhost:8080/codeigniter4">Localhost</a></p>
    </div>
</div>1

<!--Bottom CSS and JS Starts Here-->
    <script src="http://localhost:8080/codeigniter4/public/assets/js/jquery.min.js"></script>
    <script src="http://localhost:8080/codeigniter4/public/assets/js/popper.js"></script>
    <script src="http://localhost:8080/codeigniter4/public/assets/bootstrap-footer-19/js/bootstrap.min.js"></script>
    <script src="http://localhost:8080/codeigniter4/public/assets/js/main.js"></script>
  </body>
</html>1    
<!--Bottom CSS and JS Ends Here-->
 

Комментарии:

1. Вам нужно предоставить php-код, а не вывод браузера. Возможно, вы используете include, чтобы он оценивался как логический, как в примере 4 на php.net/manual/en/function.include.php но это трудно сказать без кода.

2. Я тоже добавил PHP-код

3. Я думаю, вам следует заменить <?= require_once("elements/footer.php"); ?> на <?php require_once("elements/footer.php"); ?> . <?= ?> сокращенно <?php echo ...; ?> от ( php.net/manual/en/function.echo.php ). Таким образом, он возвращает значение true, которое на выходе преобразуется в 1.

4. Нет, это не работает.

5. Я думаю, что это из окружающей среды, но это в режиме «производства».

Ответ №1:

Это для того, чтобы расширить комментарий @sergiy T(ответ) и комментарий ОП: «Нет, это не работает…»

Текущий код является

 <!--Footer Section Starts Here-->
    <?= require_once("elements/footer.php"); ?>
<!--Footer Section Ends Here-->

<!--Bottom CSS and JS Starts Here-->
    <?= include_once("elements/bottom_css_and_js.php"); ?>
<!--Bottom CSS and JS Ends Here-->
 

Где вы повторяете результат вызовов require_once и include_once и т. Д. Из-за использования<?=, Которая является формой короткого кода для <?php echo. Таким образом, вы увидите, что код «включен», а также результат вызова функции, равный 1.

Поэтому вам нужно удалить эхо, так как выполнение требования или включения помещает код в строку для выполнения/отображения.

Поэтому вам нужно изменить его на…

 <!--Footer Section Starts Here-->
    <?php require_once("elements/footer.php"); ?>
<!--Footer Section Ends Here-->

<!--Bottom CSS and JS Starts Here-->
    <?php include_once("elements/bottom_css_and_js.php"); ?>
<!--Bottom CSS and JS Ends Here-->
 

Как всегда, желательно прочитать, что эти функции делают в php.net

Комментарии:

1. Спасибо, это работает. Я не заметил, что печатаю это.