Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php strpos计算不正确?_Php_Codeigniter - Fatal编程技术网

php strpos计算不正确?

php strpos计算不正确?,php,codeigniter,Php,Codeigniter,所以我对这篇文章有一个类似的问题:,但不完全是 以下是我的情况(来自CodeIgniter应用程序): 问题是,尽管表单submit包含一个或两个值,但这两个值实际上都不会激发。表单提交接收到的值是:“保存”、“保存下一步”和“跳过下一步”(我通过查看post数据确认了这一点)。现在,对于真正令人头痛的问题,我在相同的代码块中也有这一行: if ($_submit === 'add-comment'){ //do something } 这很好用。所以===按预期工作,但是!==不是吗

所以我对这篇文章有一个类似的问题:,但不完全是

以下是我的情况(来自CodeIgniter应用程序):

问题是,尽管表单submit包含一个或两个值,但这两个值实际上都不会激发。表单提交接收到的值是:“保存”、“保存下一步”和“跳过下一步”(我通过查看post数据确认了这一点)。现在,对于真正令人头痛的问题,我在相同的代码块中也有这一行:

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
}