次のような URL があります。
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で説明されている2 つの 方法です。
<?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']
。