次のような 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']。