我有一个如下所示的网址。
post/:id
我正在爆炸$_SERVER['REQUEST_URI']
;
我需要使$uri[2]
数字成为数字,这样我就可以做类似的事情
$next = $uri[2]++;
我试过is_numeric
了,但当然request_uri
是一个字符串(分解成一个字符串数组)。
我可以在 php 中将类型转换为整数吗?
$int = (int) $uri[2];
您只需将字符串转换为整数。
您是否尝试过:http intval()
: //php.net/manual/en/function.intval.php?
int intval(mixed $var [, int $base = 10 ])
“返回 var 的整数值,使用指定的转换基数(默认为基数 10)。不应在对象上使用 intval(),因为这样做会发出 E_NOTICE 级别错误并返回 1。”
更新
(int) $string
想知道和之间的区别intval($string)
是什么之后,对以前的 SO 问题有一些有趣的评论;
(int)
速度提高 600%intval
更容易在其他函数中进行类型转换intval
有改变基础的好处(虽然这相当模糊)intval
更具可读性(这显然是非常主观的)
只是为了澄清David和ChrisW都是正确的。这是http://www.php.net/manual/en/language.types.integer.php#language.types.integer.casting中描述的两种 方法
<?php
$str = '100';
var_dump( $str ); // string(3) "100"
// http://php.net/manual/en/function.intval.php
var_dump( intval($str) ); // int(100)
// http://php.net/manual/en/language.types.type-juggling.php
var_dump( (int) $str ); // int(100)
?>
您可以将其作为来自 url 的数字作为$_GET
请求传递参数。
$_POST
或者作为请求传递。
但是在 $_POST 请求的情况下,我们不能将值传递给 url。如果你愿意,你可以使用$_SERVER['REQUEST_URI']
并转换为(int) $_GET['pid']
.