PHP使用破折号获取变量

PHP使用破折号获取变量,php,get,Php,Get,URL是something.php?id=123-10-1 如果我echoit,它只打印出123,但我需要它说123-10-1 我想这个解决方案很简单,但我没有看到它。当然,完整的参数将存储在GET数组中。你没有做错什么。错误应该在别的地方。尝试使用: var_dump($_GET); $equal = ('123-10-1' == $_GET['id']); var_dump($equal); 看看有什么不对。。。Echo不是这里最好的打印函数,但是,它也应该打印完整的参数 更新-注意 在

URL是something.php?id=123-10-1

如果我
echo
it,它只打印出123,但我需要它说123-10-1


我想这个解决方案很简单,但我没有看到它。

当然,完整的参数将存储在GET数组中。你没有做错什么。错误应该在别的地方。尝试使用:

var_dump($_GET);
$equal = ('123-10-1' == $_GET['id']);
var_dump($equal);
看看有什么不对。。。Echo不是这里最好的打印函数,但是,它也应该打印完整的参数


更新-注意

在我们知道出了什么问题之后:

$id = isset($_GET['id']) ? (int)$_GET['id'] : '';
我建议这样做:

// Set part of the code
$id = isset($_GET['id']) ? $_GET['id'] : ''; 

// Verification part of the code
if (!is_numeric($id) && $id != '') {  
    throw new Exception('ID must be numeric.');
}
if ($id == '') {
    // ID was not set in the url. Maybe there should be another action here?
}
在这种情况下,你完全可以控制这里发生的事情。Modyfing“动态”获取值或发布值不是好的做法。
我希望它能有所帮助。

当然,完整参数将存储在GET数组中。你没有做错什么。错误应该在别的地方。尝试使用:

var_dump($_GET);
$equal = ('123-10-1' == $_GET['id']);
var_dump($equal);
看看有什么不对。。。Echo不是这里最好的打印函数,但是,它也应该打印完整的参数


更新-注意

在我们知道出了什么问题之后:

$id = isset($_GET['id']) ? (int)$_GET['id'] : '';
我建议这样做:

// Set part of the code
$id = isset($_GET['id']) ? $_GET['id'] : ''; 

// Verification part of the code
if (!is_numeric($id) && $id != '') {  
    throw new Exception('ID must be numeric.');
}
if ($id == '') {
    // ID was not set in the url. Maybe there should be another action here?
}
在这种情况下,你完全可以控制这里发生的事情。Modyfing“动态”获取值或发布值不是好的做法。
我希望它能有所帮助。

使用php和函数。

使用php和函数。

尝试使用像
这样的锚标记,它会回显123-10-1

尝试使用像
这样的锚标记,它会回显123-10-1

您正在搜索的函数,该函数编码的字符串将用于URL的查询部分。

您正在搜索正在搜索对URL的查询部分中使用的字符串进行编码的函数。

这是我的代码

$id = $_GET['id']

echo $id; //123
它只印了“123”

但是

全部打印出来。看起来很奇怪,因为它本来应该工作的,但现在工作了。 必须检查我的php.ini,看看这是怎么回事。

这是我的代码

$id = $_GET['id']

echo $id; //123
它只印了“123”

但是

全部打印出来。看起来很奇怪,因为它本来应该工作的,但现在工作了。 必须检查我的php.ini,看看这是怎么回事。

  • 我已经尝试了你的代码,它给了我正确的回答

    -

输出123-10-1

  • 我已经尝试了你的代码,它给了我正确的回答

    -



输出123-10-1

事实上,在回显$\u GET['id']时应该有“123-10-1”……您确定没有事先操作$\u GET?正如@lpg所说,你应该得到“123-10-1”(没有任何事先的操作)你使用和锚定标签了吗?我更新了我的答案,并添加了额外的主题注释-当我们已经知道原因时。比尔!事实上,当您回显$\u GET['id']时,应该有“123-10-1”……您确定没有事先操作$\u GET?正如@lpg所说,你应该得到“123-10-1”(没有任何事先的操作)你使用和锚定标签了吗?我更新了我的答案,并添加了额外的主题注释-当我们已经知道原因时。比尔!谢谢,我找到了解决办法。我刚刚回答了。看起来有点奇怪,你自己试试。我喜欢你用“安全”的方式检查<代码>值==$variableToCheck+1表示:>Thx表示注释。当我们知道“应该”和“不应该”时,这种诊断总是有帮助的。谢谢,我找到了解决办法。我刚刚回答了。看起来有点奇怪,你自己试试。我喜欢你用“安全”的方式检查<代码>值==$variableToCheck+1表示:>Thx表示注释。当我们知道什么是“应该”和“不是”时,这种诊断总是很有帮助的。你不是同时修改了$id吗?真奇怪。请提供完整的代码,因为这个案例非常有趣:)。哦,天哪,是的,我是。抓住Jacek!这就是我一直在做的事情(不知何故,我一直错过了(int):
$id=isset($\u GET['id'])?(int)$_GET['id']:''非常抱歉,我只是以前没有看到它(谢谢你帮我,我可能再也不会回头看它了!没问题:)。还有一点可能性是,在一些错误放置的代码之后,您将得到类似111(123-10-1=111:P)的结果。致以最诚挚的问候,并很高兴能为您提供帮助。我将在稍后更新我的答案,并附上一点离题说明。您不是同时修改了$id吗?真奇怪。请提供完整的代码,因为这个案例非常有趣:)。哦,天哪,是的,我是。抓住Jacek!这就是我一直在做的事情(不知何故,我一直错过了(int):
$id=isset($\u GET['id'])?(int)$_GET['id']:''非常抱歉,我只是以前没有看到它(谢谢你帮我,我可能再也不会回头看它了!没问题:)。还有一点可能性是,在一些错误放置的代码之后,您将得到类似111(123-10-1=111:P)的结果。致以最良好的问候,并很高兴能为您提供帮助。我将更新我的答案,并在稍后添加一点离题说明。