PHP语法帮助检查数组中的多个ID
我正在wordpress中使用联系人表单7,并且必须为表单操作url创建一个自定义挂钩。如果我想检查一个特定的表单“id”是否存在,并且如果存在,则将其发送到另一个url,那么它就可以工作。该代码如下所示:PHP语法帮助检查数组中的多个ID,php,arrays,wordpress,Php,Arrays,Wordpress,我正在wordpress中使用联系人表单7,并且必须为表单操作url创建一个自定义挂钩。如果我想检查一个特定的表单“id”是否存在,并且如果存在,则将其发送到另一个url,那么它就可以工作。该代码如下所示: add_filter('wpcf7_form_action_url', 'wpcf7_custom_form_action_url'); function wpcf7_custom_form_action_url($url) { global $wpcf7_contact_form
add_filter('wpcf7_form_action_url', 'wpcf7_custom_form_action_url');
function wpcf7_custom_form_action_url($url)
{
global $wpcf7_contact_form;
if ($wpcf7_contact_form->id === 333)
{
return 'http://mydomain.com/Leads/';
}
else
{
return $url;
}
}
add_filter('wpcf7_form_action_url', 'wpcf7_custom_form_action_url');
function wpcf7_custom_form_action_url($url)
{
global $wpcf7_contact_form;
if( !in_array($wpcf7_contact_form->id,array(660, 684, 685, 686)))
{
return 'http://mydomain.com/Leads/';
}
else
{
return $url;
}
}
但是,我有4个表单,我希望它检查它们是否存在,以将发送到与上面相同的url(其中是我的域url)。如果我尝试添加多个ID,它就会中断。这就是我尝试过的:
add_filter('wpcf7_form_action_url', 'wpcf7_custom_form_action_url');
function wpcf7_custom_form_action_url($url)
{
global $wpcf7_contact_form;
if ($wpcf7_contact_form->id === 333 || 334 || 335 || 336)
{
return 'http://mydomain.com//Leads/';
}
else
{
return $url;
}
}
上面的代码似乎不起作用
我还尝试将其作为如下数组进行检查:
add_filter('wpcf7_form_action_url', 'wpcf7_custom_form_action_url');
function wpcf7_custom_form_action_url($url)
{
global $wpcf7_contact_form;
if ($wpcf7_contact_form->id === 333)
{
return 'http://mydomain.com/Leads/';
}
else
{
return $url;
}
}
add_filter('wpcf7_form_action_url', 'wpcf7_custom_form_action_url');
function wpcf7_custom_form_action_url($url)
{
global $wpcf7_contact_form;
if( !in_array($wpcf7_contact_form->id,array(660, 684, 685, 686)))
{
return 'http://mydomain.com/Leads/';
}
else
{
return $url;
}
}
同样,这似乎是不正确的。有人能看到上面不正确的地方吗。我似乎无法让它工作。更改:
if ($wpcf7_contact_form->id === 333 || 334 || 335 || 336)
if( !in_array($wpcf7_contact_form->id,array(660, 684, 685, 686)))
关于:
因为您的if
语句总是True
更改:
if ($wpcf7_contact_form->id === 333 || 334 || 335 || 336)
if( !in_array($wpcf7_contact_form->id,array(660, 684, 685, 686)))
关于:
因为您的if
语句总是True
您的第二次尝试(使用|
)完全无效。查看PHP的运算符优先级规则:
代码被解析/执行为:
if (($wpcf7_contact_form->id === 333) || 334 || 335 || 336)
^-- ^--
(注意额外的括号)。执行相等测试并返回真/假值,然后使用一系列整数执行逻辑或操作:
0 || 334 || 335 || 336 -> 0 || 351 -> 351 -> true
1 || 334 || 335 || 336 -> 1 || 351 -> 351 -> true
您的in_array()版本是正确的,只是您的代码>-notting in_数组测试,因此如果检索到的id不是这些值之一,则重定向。如果我没看错你的问题,那与你想要的正好相反。在数组()中使用,而不是!在_array()
中,您的第二次尝试(使用|
)完全无效。查看PHP的运算符优先级规则:
代码被解析/执行为:
if (($wpcf7_contact_form->id === 333) || 334 || 335 || 336)
^-- ^--
(注意额外的括号)。执行相等测试并返回真/假值,然后使用一系列整数执行逻辑或操作:
0 || 334 || 335 || 336 -> 0 || 351 -> 351 -> true
1 || 334 || 335 || 336 -> 1 || 351 -> 351 -> true
您的in_array()版本是正确的,只是您的代码>-notting in_数组测试,因此如果检索到的id不是这些值之一,则重定向。如果我没看错你的问题,那与你想要的正好相反。在数组()中使用,而不是!在_array()
中,您希望使用诸如ID(660684685686)等检查表单
对吗
如果是这种情况,那么您已经反转了in\u array
语句(!in\u array
)
更改:
if ($wpcf7_contact_form->id === 333 || 334 || 335 || 336)
if( !in_array($wpcf7_contact_form->id,array(660, 684, 685, 686)))
进入
至少,数组中的是检查多个值的最佳方法。因此,这应该保留在您的最终代码中 您希望使用例如ID(660、684、685、686)检查表单
对吗
如果是这种情况,那么您已经反转了in\u array
语句(!in\u array
)
更改:
if ($wpcf7_contact_form->id === 333 || 334 || 335 || 336)
if( !in_array($wpcf7_contact_form->id,array(660, 684, 685, 686)))
进入
至少,数组中的是检查多个值的最佳方法。因此,这应该保留在您的最终代码中 询问者已在_array()中尝试,显然没有成功。他们做错了什么?@StephenTG:我想说var是一个字符串,包含空格?@EliasVanOotegem只是说,如果你要建议“在数组中使用()”,他们已经有了,那么就说他们做错了什么。@StephenTG,看到我的答案了。@StephenTG,我做了一个让人惊讶的梦,并且在你解释之后投了赞成票。与其说我是在寻找原因,不如说我建议,如果答案表明用户已经在做某件事,它应该解释为什么他们做得不对/次优询问者已经在_array()中尝试过,显然没有成功。他们做错了什么?@StephenTG:我想说var是一个字符串,包含空格?@EliasVanOotegem只是说,如果你要建议“在数组中使用()”,他们已经有了,那么就说他们做错了什么。@StephenTG,看到我的答案了。@StephenTG,我做了一个让人惊讶的梦,并且在你解释之后投了赞成票。与其说我在寻找原因,不如说我建议如果一个答案表明用户已经在做什么,它应该解释为什么他们做得不对/次优。我将接受这个答案,因为我是第一个指出倒置阵列的人。CF7是喜怒无常的。在现在的页面上,它挂起了,我只是得到了一个旋转的光标,即使我已经通过contact form 7的附加设置正确添加了重定向(在数据发布到自定义函数url之后)。这些表单只能通过移动设备访问,在这种情况下,我的表单会立即将数据发送到正确的url并返回到正确的成功页面。事实上,我忽略了倒排,这确实是需要解决的问题。我将接受这一点,因为我是第一个指出倒排的人。CF7是喜怒无常的。在现在的页面上,它挂起了,我只是得到了一个旋转的光标,即使我已经通过contact form 7的附加设置正确添加了重定向(在数据发布到自定义函数url之后)。这些表单只能通过移动设备访问,在这种情况下,我的表单会立即将数据发送到正确的url并返回到正确的成功页面。事实上,我忽略了倒排,这确实是需要解决的问题。