Php in_array()函数不使用';行不通
该死的家伙, 我有以下代码:Php in_array()函数不使用';行不通,php,Php,该死的家伙, 我有以下代码: $_SESSION['product'] value is(I var_dump it for you): array(2) { [0]=> string(51) "869-Satin bridal bouquet model "Ocean Sunset"-F0036" [1]=> string(47) "876-Satin Bridal bouquet model "Mexicana"-F0039" } $sproduct="876-
$_SESSION['product'] value is(I var_dump it for you): array(2) {
[0]=> string(51) "869-Satin bridal bouquet model "Ocean Sunset"-F0036"
[1]=> string(47) "876-Satin Bridal bouquet model "Mexicana"-F0039"
}
$sproduct="876-Satin Bridal bouquet model "Mexicana"-F0039";
if (in_array($sproduct, $_SESSION['product'])){
echo 'aaaaaaaaaaaa';exit();
}
为什么它不起作用?这是否可能是由于未配置服务器设置造成的?谢谢试试这个:
$sproduct='"876-Satin Bridal bouquet model "Mexicana"-F0039"';
if (in_array($sproduct, $_SESSION['product']))
{
echo 'aaaaaaaaaaaa';exit();
}
尝试转义引号
像这样
$_SESSION['product'] = array(
0=> "869-Satin bridal bouquet model \"Ocean Sunset\"-F0036",
1=> "876-Satin Bridal bouquet model \"Mexicana\"-F0039"
);
$sproduct="876-Satin Bridal bouquet model \"Mexicana\"-F0039";
if (in_array($sproduct, $_SESSION['product'])){
echo 'aaaaaaaaaaaa';exit();
}
我假设您在问题中显示的$_会话是会话变量的var_转储,而不是如何定义数组(如果是如何定义数组,您应该学习如何正确定义它们) 您的
$sproduct
字符串变量定义错误
在PHP中,由双引号定义的字符串不能包含没有转义反斜杠()的双引号
例如:
$s = "foo \"bar\" foo bar";
或者你可以用一个报价代替
$s = 'foo "bar" foo bar';
使用单引号更有效率,因为双引号需要更长的处理时间,因为PHP解析器必须提前读取整个字符串来检测其中的任何变量并将其连接起来 试试
$sprproduct=“876缎面新娘花束模型\“墨西哥\”-F0039”代码>您的数组定义无效,您应该得到一个错误。(2)
没有任何意义。。。与记下键的方式相同:[1]
无效。。。试试这个:$\u SESSION['product']=array{1=>“869缎面新娘花束模型\“Ocean Sunset\”-F0036”,2=>…
。但是正如前面所说的:您应该从php得到一个明确的错误。当然,我会得到错误,这只是$\u SESSION['product']的变量转储为了向您展示它的价值..而这段代码正在另一台服务器上工作..这就是为什么我认为我当前使用的服务器配置不好,我想知道我需要更改哪个设置..@arkascha,这不是问题,它只是会话的一个var转储。此外,您定义的变量错误。您应该使用[]
(还删除了不必要的键)。@DanRevah Ooops,对,错括号。我仍然认为评论是有意义的,因为OP清楚地写下了发布的是代码。这显然是无效的。是的,Dan这只是值的var_转储,但此代码正在另一台服务器上工作。。