在PHP

时间:2018-06-11 16:48:56

标签: php function variables

此代码:

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

...从网址中提取网址片段。说我的网址是“mysite.com/a/b/1234”

代码输出1234

我想使用像这样的函数填充下面的代码1234

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

所以和

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

....但它不起作用。有任何想法吗?我需要解析还是什么? 感谢

3 个答案:

答案 0 :(得分:2)

echo语句为described in the manual

  

echo - 输出一个或多个字符串

通过"输出",这里的意思是将字符串发送给用户 - 将其显示在命令行脚本的终端上,或将其发送到用户的Web浏览器。

您正在寻找的是使用代码中其他位置的值,这被称为"返回"变量。有a manual page about returning values

您需要做的下一件事是该值与固定字符串'bibs/'结合起来。为此,您可以使用string concatenationstring interpolation

答案 1 :(得分:0)

你可以这样试试:

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

答案 2 :(得分:0)

在你的函数中,你需要实际返回你想要使用它的值:

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的答案,了解非常有用的解释和链接!