php strpos计算不正确?
所以我对这篇文章有一个类似的问题:,但不完全是 以下是我的情况(来自CodeIgniter应用程序): 问题是,尽管表单submit包含一个或两个值,但这两个值实际上都不会激发。表单提交接收到的值是:“保存”、“保存下一步”和“跳过下一步”(我通过查看post数据确认了这一点)。现在,对于真正令人头痛的问题,我在相同的代码块中也有这一行:php strpos计算不正确?,php,codeigniter,Php,Codeigniter,所以我对这篇文章有一个类似的问题:,但不完全是 以下是我的情况(来自CodeIgniter应用程序): 问题是,尽管表单submit包含一个或两个值,但这两个值实际上都不会激发。表单提交接收到的值是:“保存”、“保存下一步”和“跳过下一步”(我通过查看post数据确认了这一点)。现在,对于真正令人头痛的问题,我在相同的代码块中也有这一行: if ($_submit === 'add-comment'){ //do something } 这很好用。所以===按预期工作,但是!==不是吗
if ($_submit === 'add-comment'){
//do something
}
这很好用。所以===按预期工作,但是!==不是吗 我建议使用开关而不是多个if条件
$_submit = strtolower($this->input->post('form-submit'));
switch($_submit) {
case 'save':
case 'save-comment': // example for different spelling but same action...
// we have to save our post data to the db
break;
case 'next':
// we have to get the next record from the db
break;
case 'add-comment':
// we have to save our post data to the db
break;
default:
die('Unknown parameter value');
break;
}
您为strps函数提供的参数错误
$submit = strtolower($this->input->post('form-submit'));
if(strpos($submit,'save') !== FALSE){
// we have to save our post data to the db
}
if(strpos($submit,'next') !== FALSE){
// we have to get the next record from the db
}
请查看php.net手册中的函数……第一个参数是完整字符串,第二个参数是键字符串
您也可以在这里找到一个小的参数。您对
strpos
的参数是错误的:因为它是strpos(string$haystack,mixed$needle)
。在您的代码中,您正在大海捞针$\u submit
“save”
所以if(strpos($\u submit,'save')!==FALSE)
[当然,在测试
'save'
和'save'
时,任何一种方法都会起作用,这可能会让您感到困惑。]我们可以假设您的第二个条件是输入错误而不是实际的代码吗?它是一个字符串,所以请使用'strtolower($this->input->post('form-submit'))“如果我的回答能帮助你解决问题,请接受我的回答……哇,我现在觉得自己像个傻瓜。我已经看过了,但显然不够仔细。谢谢。嘿,我正在寻找一些自由职业者在PHP或CodeIgniter的工作也。通常我会,时间很短,所以我现在只是做最快的解决方案。当我回去重新考虑的时候,我会把事情说得更多。谢谢你的意见!谢谢,我感觉像个傻瓜。显然我读不太好。嘿,我们都读过了。尤其是PHP,它的参数顺序往往不太一致……是的,我注意到了。我说“我知道是针,然后是干草堆”,然后我又看了看,这次是干草堆/针。啊!
$submit = strtolower($this->input->post('form-submit'));
if(strpos($submit,'save') !== FALSE){
// we have to save our post data to the db
}
if(strpos($submit,'next') !== FALSE){
// we have to get the next record from the db
}