Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.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检查isset和value是否为0_Php_Codeigniter - Fatal编程技术网

php检查isset和value是否为0

php检查isset和value是否为0,php,codeigniter,Php,Codeigniter,我正在使用CodeIgniter框架创建我的web服务。我有一个可选参数,我想根据该参数设置其值:- 如果它存在且值为0,则var2=a else var2=b 方法1 $foo = $this->post('foo'); if(isset($foo) && $foo == 0) { $var2 = 'a'; } else { $var2 = 'b'; } 方法2 $foo = $this-&g

我正在使用CodeIgniter框架创建我的web服务。我有一个可选参数,我想根据该参数设置其值:-

  • 如果它存在且值为0,则var2=a
  • else var2=b
方法1

    $foo = $this->post('foo');

    if(isset($foo) && $foo == 0) {
        $var2 = 'a';
    } else {
        $var2 = 'b';
    }
方法2

    $foo = $this->post('foo');

    if(isset($foo)) {
        if ($foo == 0)
            $var2 = 'a';
        else
            $var2 = 'b';
    } else {
        $var2 = 'b';
    }

当我没有发送
foo
时,这两种方法都返回
$var2='a'
,因为您没有使用正确的方法来获取post值 试一试


您没有使用正确的方法获取post值 试一试

$this->input->post()

如果您试图检索的项不存在,则函数返回FALSE(布尔值)

所以你可以试试这样的方法

if(isset($_POST['foo']) && $_POST['foo'] == 0) {
    $var2 = 'a';
} else {
    $var2 = 'b';
}

$foo = $this->input->post('foo');
if($foo && $foo == 0){
    $var2 = 'a';
} else {
    $var2 = 'b';
$this->input->post()

如果您试图检索的项不存在,则函数返回FALSE(布尔值)

所以你可以试试这样的方法

if(isset($_POST['foo']) && $_POST['foo'] == 0) {
    $var2 = 'a';
} else {
    $var2 = 'b';
}

$foo = $this->input->post('foo');
if($foo && $foo == 0){
    $var2 = 'a';
} else {
    $var2 = 'b';
使用此代码

$foo=$this->input->post('foo')

echo“变量=”$var2

输出:

variable = a  // if you enter  0 in foo field

variable = b // if you didn't enter 0 
在if条件下,必须在0(零)左右使用单引号

if(isset($foo) && $foo == '0')   
使用此代码

$foo=$this->input->post('foo')

echo“变量=”$var2

输出:

variable = a  // if you enter  0 in foo field

variable = b // if you didn't enter 0 
在if条件下,必须在0(零)左右使用单引号

if(isset($foo) && $foo == '0')   

$foo=$this->input->post('foo')
var_dump($foo)

检查$foo的值
然后写入candition,可能是$foo返回假值

$foo=$this->input->post('foo')
var_dump($foo)

检查$foo的值
然后写candition,可能是$foo返回假值

试试下面,两者都一样

$foo = $this->input->post("username");
$var2 = (int)$foo === 0 ? 'a' : 'b';

注意:您正在使用
isset()
检查空字符串。这就是为什么它总是返回true


希望这有帮助:)

试试下面,两者都一样

$foo = $this->input->post("username");
$var2 = (int)$foo === 0 ? 'a' : 'b';

注意:您正在使用
isset()
检查空字符串。这就是为什么它总是返回true


希望这有帮助:)

使用
='0'
修复了它

$foo = $this->post('foo');

if($foo === '0') {
    $var2 = 'a';
} else {
    $var2 = 'b';
}

使用
==“0”
修复了它

$foo = $this->post('foo');

if($foo === '0') {
    $var2 = 'a';
} else {
    $var2 = 'b';
}

我认为你对无效答案投了反对票。这个if条件在任何条件下都不会返回true。我想你们会因为无效答案而被否决。此if条件对于任何条件都不会返回true。请在if条件之前检查echo$foo的值。请在if条件之前检查echo$foo的值。这不是他在问题中使用的同一代码吗?他错过了输入$这个->输入->发布('foo')是的,他在问题中漏掉了它。从另一个角度看,这是行不通的。他说它总是返回“b”。@我向大家道歉,我的意思是,当我想让它返回
b
@ija时,它返回
a
,因为如果
foo
没有发送进来,你的答案在我想让它返回
b
时,它返回了
a。这不是他在问题中使用的同一个代码吗?他没有输入$这个->输入->发布('foo')是的,他在问题中漏掉了它。从另一个角度看,这是行不通的。他说它总是返回“b”。@IJas我向大家道歉,我的意思是当我希望它返回
b
时,它返回
a
。@IJas如果
foo
没有被发送,你的回答是当我希望它返回
b
时,它返回
a