Echo语句打印值'1'

时间:2016-05-10 11:24:36

标签: php

当我想测试值是否从HTML表单正确传递给PHP时,我发现echo语句有问题。 这是HTML文本框代码

<div class = form-group>
                    <label for = 'bcaa'>BCAA 5gms Cost</label>
                    <input type = 'text' class = 'form-control' name = 'bcaa'>
                </div>

这是获取值并简单打印它的PHP代码。

<?php

$bcaacost = isset($_POST['bcaa']) ;
echo $bcaacost;
?>

文本框中给出的值不会被打印,但只打印“1”,更多的回声语句被添加更多不打印“1”

echo "something";
echo "blah blah";

输出

11

这是什么原因,我需要做些什么才能解决这个问题?

5 个答案:

答案 0 :(得分:2)

删除isset()以进行变量分配,因为它会检查是否设置了可靠的$_POST['bcaa']

$bcaacost = $_POST['bcaa'];

完整代码

<?php
$bcaacost = $_POST['bcaa'];
echo $bcaacost;
?>

Read more关于 isset()

答案 1 :(得分:1)

true会返回false$bcaacost = isset($_POST['bcaa']) ; // return true / 1 echo $bcaacost; // prints 1 ,具体取决于变量集。

if(isset($_POST['bcaa'])) {
    echo $_POST['bcaa'];
}

它应该像 -

$bcaacost = isset($_POST['bcaa']) ? $_POST['bcaa'] : 'Default';
echo $bcaacost;

或者如果你想打印一些默认值,那么 -

INSERT OR IGNORE

答案 2 :(得分:1)

if(isset($_POST['bcaa'])) {
    $bcaacost = $_POST['bcaa'] ;    
    echo $bcaacost ;
}

否则,isset($_POST['bcaa'])将打印10

答案 3 :(得分:1)

isset()检查变量是否存在,并返回true(1)或false(0)

要查看$_POST['bcaa']的内容,您需要检查它是否存在,即isset(),然后使用变量的内容

<?php
$bcaacost = isset($_POST['bcaa']);
if ( $bcaacost ) {
    echo $_POST['bcaa'];
}
?>

或更简单

if ( isset($_POST['bcaa']) ) {
    echo $_POST['bcaa'];
}

关于你的建议:

echo "something";
echo "blah blah";

将创建不能如此的11。其他一些必须造成这种情况,或者您只是对创建11输出

的内容感到困惑

答案 4 :(得分:0)

isset的结果为true或false。在你的情况下,结果是真的,它被分配回$ bcaacost,这就是它回显1的原因。

使用以下代码:

<?php

$bcaacost = isset($_POST['bcaa'])?$_POST['bcaa']:"not set";
echo $bcaacost;
?>