php函数返回零而不是预期的字符串

时间:2017-12-02 17:50:01

标签: php gravity-forms-plugin

在我的示例中,我从Gravity Forms单选按钮字段(字段ID 4)收集表单数据。对于“First Choice”的选择,字段ID 4的值为0。因此,为了解决该字段,我使用变量$ field_id,并使用$ entry [$ field_id](值为0)收集选择值,该值的文本标签为“First Choice”。字段ID 4的值为0的预期结果是文本“First Choice”。我需要将它打印到文本文件中。我做了以下事情:

    $field_id = 4;
    $field = GFFormsModel::get_field( $form, $field_id );
    $choice_text = $field['choices'][$entry[$field_id]]['text'];

    $data = $choice_text;

    file_put_contents($my_file,$data);
    $tmpfile = fopen($my_file, "r");
    $contents = fread($tmpfile, filesize($my_file));

上述方法会按预期将“First Choice”打印到我的文本文件中。但是我需要用一个函数来做这件事。如果我尝试使用以下函数执行此操作,则由于某种原因返回0:

    function choiceLabel($field_id){
        $field = GFFormsModel::get_field( $form, $field_id );
        $choice_text = $field['choices'][$entry[$field_id]]['text'];
        return $choice_text;
    }

    $data = choiceLabel(4);

    file_put_contents($my_file,$data);
    $tmpfile = fopen($my_file, "r");
    $contents = fread($tmpfile, filesize($my_file));

这会产生一个错误,上面写着“警告:fread():长度参数必须大于0”。为什么我的函数返回0值而不是字符串“First Choice”?谢谢你看这个。

1 个答案:

答案 0 :(得分:1)

感谢大卫指出我的范围方向。

这有效:

    function choiceLabel($field_id,$form,$entry){
        $field = GFFormsModel::get_field( $form, $field_id );
        $choice_text = $field['choices'][$entry[$field_id]]['text'];
        return $choice_text;
    }

    $data = choiceLabel(4,$form,$entry);