Установить значение переменной для результата функции в PHP - PullRequest
0 голосов
/ 11 июня 2018

Этот код:

function getId() {
$uri_path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
$uri_segments = explode('/', $uri_path);
echo $uri_segments[3];
}

... извлекает сегмент URL из URL.Скажите, что мой URL-адрес "mysite.com/a/b/1234"

Код выводит 1234

Я хочу заполнить приведенный ниже код с 1234, используя такую ​​функцию

$res = $api->query('bibs/getId();', array(

так же, как

$res = $api->query('bibs/1234', array(

.... но это не работает.Есть идеи?Нужно ли разбирать что ли?Спасибо

Ответы [ 3 ]

0 голосов
/ 11 июня 2018

Оператор echo описан в руководстве как:

echo - вывести одну или несколько строк

"output"здесь подразумевается отправка строки пользователю - отображение ее в терминале сценария командной строки или отправка в веб-браузер пользователя.

Вам нужно использовать значениев другом месте вашего кода, который известен как «возвращение» переменной.Существует справочная страница о возвращаемых значениях .

Следующее, что вам нужно сделать, это объединить это значение с фиксированной строкой 'bibs/'.Для этого вы можете использовать конкатенацию строк или интерполяцию строк .

0 голосов
/ 11 июня 2018

В вашей функции вам необходимо вернуть значение, которое вы хотите использовать:

function getId() {
   $uri_path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
   $uri_segments = explode('/', $uri_path);
   return $uri_segments[3];
}

Затем вы можете вывести результат,

echo getId();

или назначьте его другой переменной

$id = getId();

или используйте его напрямую (связав его с другой строкой:

$res = $api->query('bibs/'.getId(), array(...

// the same when assigning it to a variable before:
$id = getId();
$res = $api->query('bibs/'.$id, array(...

Пожалуйста, см. ответ IMSoP для очень полезных объяснений и ссылок!

0 голосов
/ 11 июня 2018

Вы можете попробовать это так:

$res = $api->query('bibs/' . getId(), array(
...