#php #get #require-once
#php #получить #требовать-один раз
Вопрос:
Я хотел бы запросить файл, но также передать переменные GET через URL, но когда я пишу:
<?php
require_once("myfile.php?name=savagewood");
?>
Я получаю неустранимую ошибку. Как бы мне реализовать эту функциональность по-другому, чтобы я не получал фатальную ошибку?
Комментарии:
1. Оглядываясь на 11 лет назад на вопросы, которые я задавал на SO, так неловко 😂
Ответ №1:
переменные будут доступны в обычном режиме, вам не нужно передавать их подобным образом.
$name='savagewood';
require_once("myfile.php");
$name
будет доступен в myfile.php
Комментарии:
1. Конечно, только если они находятся в одной области видимости, или включаемый скрипт непроцедурный, или $name находится внутри глобальных значений.
2. в моем случае это не работает.
$name = $_POST['test'];
здесь я получил значение $ name. но вmyfile.php
не получает значения $name;3. как использовать varible глобально?
Ответ №2:
<?php
$getVarsArray = $_GET;
$postVarsArray = $_POST;
/* n number of variables and lines of code*/
include('script-a.php');
?>
Теперь в script-a.php имеет доступ к $getVarsArray
и $postVarsArray
, и если в любом случае вы сомневаетесь, вы можете использовать $GLOBALS
для доступа к любой переменной на протяжении всего жизненного цикла скрипта. Но использование глобальных переменных — это грех. 🙂
Комментарии:
1.
$_GET
и$_POST
являются суперглобальными , что означает, что они существуют во всех областях. Копирование суперглобалов GPC в другую переменную, подобную этой, выходит за рамки глупости и граничит с безумием. Не делайте этого.2. @Charles, использование этих переменных GET и POST без их обработки будет в равной степени за гранью глупости и граничащего с безумием. Я никогда этого не делаю. Sane обработает эти суперглобальные файлы и скопирует их и отменит переменные POST / GET. Или параноик может даже написать свою собственную реализацию для использования GET / POST var. Это не входит в рамки вопроса и не упоминалось. Моя ошибка.
Ответ №3:
Нет необходимости передавать переменные в новый файл, потому что при включении нового файла переменные сохраняются. Помните, что $ _GET — это массив, и он может быть изменен в скрипте.
<?php
$_GET['name'] = "savagewood";
require_once("myfile.php");
?>
В этом случае $_GET['name']
доступен из «myfile.php«
Ответ №4:
Я думаю, что у меня есть идеальное решение вашей проблемы. Вы можете использовать implode
функцию PHP. Но я бы настоятельно рекомендовал использовать код Шакти Сингх.
КОД РЕШЕНИЯ
echo implode(file('http://path-to-your-site/your-dir/myfile.php?name=savagewood'));