代码之家  ›  专栏  ›  技术社区  ›  Craig Tucker

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

  •  0
  • Craig Tucker  · 技术社区  · 7 年前

    在我的示例中,我从重力表单单选按钮字段(字段ID 4)收集表单数据。字段ID 4的值为0,用于选择“First Choice”。因此,为了处理字段,我使用变量$field\u id,通过使用$entry[$field\u id](值为0)收集选择值,该值的文本标签为“First Choice”。值为0的字段ID 4的预期结果是文本“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():Length参数必须大于0”。为什么我的函数返回0值而不是字符串“First Choice”?谢谢你看这个。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Craig Tucker    7 年前

    这项工作:

        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);