【发布时间】:2014-12-15 09:21:03
【问题描述】:
嗨,我在 php 中使用array_key_exists,这是我的代码
$action_array = array(
'add_post_ajax'=>'posts'
);
if ($_SERVER['REQUEST_METHOD'] === 'POST')
{
echo $_POST['action'];
if(array_key_exists($_POST['action'],$action_array))
{
$class = $action_array[$_POST['action']];
}
else
{
echo "wrong data";
}
}
echo $_POST['action']; 显示 add_post_ajax ,然后打印 wrong data
奇怪,请帮助我,我在这里做错了什么
更新
我也尝试过修剪
if(array_key_exists(trim($_POST['action']),$action_array))
还是一样的结果:/
这是我的 ajax 请求
xmlhttp.send("action='add_post_ajax' &name=" + name + "&email=" + email + "&post=" + post);
echo $_POST['action'] 给我add_post_ajax 但var_dump($_POST['action']) 给我一个有线结果
<pre class='xdebug-var-dump' dir='ltr'><small>string</small> <font color='#cc0000'>''add_post_ajax' '</font> <i>(length=16)</i>
</pre>
这是什么:o
【问题讨论】:
-
另一种方法是
if(isset($action_array[$_POST['action']])) -
对我来说很好用!你确定它返回的是
add_post_ajax吗? -
是的,我确定。 @JohnConde,我试过你的还是一样的
-
var_dump($_POST['action'])甚至array_keys($_POST['action'])告诉你什么? -
你有xdebug extension turned on,它在
var_dump的输出中添加了一些html——更重要的是你不是在寻找一个数组键,你在寻找一个数组值:使用in_array()而不是array_key_exists()
标签: php post array-key-exists