0

Parse error: syntax error, unexpected T_IF, expecting T_FUNCTION in C:\wamp\www\Exam Creator\cls_FillInTheBlank.php on line 31

I received this error while trying to run the cls_FillInTheBlank.php which includes cls_template.php. I have the two files posted at the for review.

cls_FillInTheBlank.php

<?php

    include("cls_template.php");

class fillintheblank{

    function _construct(){
        $cls_blankInput = new template;
        $cls_questionString = new template;
        $cls_fillInTheBlank = new template;
    }

    if(class_exists($cls_blankInput)){
        $cls_blankInput->fillString("<input type='text' name='[qInputName]' id='[qInputId]' value='[qInputValue]' />");
        $cls_blankInput->fillPlaceholderStrings(array("[qInputName]","[qInputId]","[qInputValue]"));
    } else {
        print("\$cls_blankInput not defined.<br>");
    }

    if(class_exists($cls_questionString)){
        $cls_questionString->fillString("");    // to be set later
        $cls_questionString->fillPlaceholderStrings(array("[fib_blank]"));
    } else {
        print("\$cls_questionString not defined.<br>");
    }

    if(class_exists($cls_fillInTheBlank)){
        $cls_fillInTheBlank->fillString("<li>[qFillInTheBlankString]</li>");
        $cls_fillInTheBlank->fillPlaceholderStrings(array("[qFillInTheBlankString]"));
    } else {
        print("\$cls_fillInTheBlank not defined.<br>");
    }

    public function q_fib_buildString($cls_question){
        $i_qID = "";            // @type INTEGER
        $s_html = "";           // @type STRING
        $a_inputs = "";         // @type ARRAY
        $s_innerHTML = "";      // @type STRING
        $s_outerHTML = "";      // @type STRING

        $i_qID = $cls_question->qo_i_id;

        // build the HTML for the blank input
        foreach($cls_question->qo_a_answerSet as $answer){
            $this->cls_blankInput->fillPlaceholderValues(array("qID_".$i_qID,"qID_".$i_qID,$answer["value"]));
            $a_inputs[count($a_inputs)] = $this->cls_blankInput->buildTemplate();
        }

        // build the inner HTML
        $this->cls_questionString->fillString($cls_question->qo_s_string);
        $this->cls_questionString->fillPlaceholderValues($a_inputs);
        $s_innerHTML = $this->cls_blankInput->buildTemplate();


        // build the outer HTML
        $this->cls_fillInTheBlank->fillPlaceholderValues($s_innerHTML);
        $outerHTML =  $this->cls_fillInTheBlank->buildTemplate();

        return $outerHTML;

    }

    public function q_fib_buildString($s_template){
        $s_fib_patterns = array();
        $s_input_blank = "";
        $s_fib_patterns_blank = "[\[fib_blank\]]";

        // array of placeholders 
        $a_fib_patterns['input'] = array();
            // place holder for the name attribute of the input tag
            $a_fib_patterns['attribute']['name'] ="[\[qInputName\]]";
            // place holder for the id attribute of the input tag
            $a_fib_patterns['attribute']['id'] = "[\[qInputId\]]";

        // array of values
        $a_fib_replace['value'] = array();
            // value for the name attribute
            $a_fib_replace['value']['name'] = "qId_".$i_id."[]";
            // value fo the id attribute
            $a_fib_replace['value']['id'] = "qId_".$i_id."[]";

        // build blank input
        $s_input_blank = preg_replace($a_fib_patterns['input'],$a_fib_replace['value'],fillintheblank::$s_blankInput);
        // build question string
        $s_string = preg_replace($s_fib_patterns_blank,$s_input_blank,$s_string);

        /* START CODE FOR TESTING */
//      echo($s_input_blank);   // echo code for the blank inputs
        /* END CODE FOR TESTING */

        // return question string
        return $s_string;

    }

}

?>
2
  • Just post line 30-32 of cls_FillInTheBlank.php
    – Jacob
    Commented Mar 26, 2011 at 2:43
  • Post your code here, on this website. People don't want to have to go to another website to help solve small problems, especially if that other website requires you to download the file. Commented Mar 26, 2011 at 2:48

2 Answers 2

6

You've basically got this:

class fillintheblank {
   if (...) {
   }
   if (...) {
   }
}

That's not permitted. A class definition has member variables and method definitions (ie: functions). You can't put "naked" PHP code in a class definition. YOu'll have to wrap it in a method, probably a constructor.

0
0

Your problem is you started a class, but then you started writing what would usually be found in a function body in it. You need to enclose lines 27-56 in a function definition.

Also, unrelatedly, you named a method _construct when you probably meant __construct. Two underscores, not just one.

1
  • Ah, I didn't notice I missed that second udnerscore. Thanks. Commented Mar 26, 2011 at 12:08

Not the answer you're looking for? Browse other questions tagged or ask your own question.