-1

I'm writing in php and when I tried to run it, it gave me an error: syntax error, unexpected '<', expecting end of file This is my code

<!DOCTYPE html>
<html>
   <body>
    <?php
$outputNumber=0;
$inputNumber = (float)$_POST['inputNumber'];
$inputFormat = $_POST['inputFormat'];
$outputFormat = $_POST['outputFormat'];

    switch($inputFormat){
    case "meter":

        switch ($outputFormat){
        case "pico": $outputNumber = $inputNumber*1000000000000;break;  
        case "nano": $outputNumber = $inputNumber*1000000000;break;  
        case "micro": $outputNumber = $inputNumber*1000000;break;  
        case "mm": $outputNumber = $inputNumber*1000;break;  
        case "cm": $outputNumber = $inputNumber*100;break;
        case "deci": $outputNumber = $inputNumber*10;break;         
        case "meter": $outputNumber = $inputNumber;break;
        case "deca": $outputNumber = $inputNumber*0.1;break;
        case "hm": $outputNumber = $inputNumber*0.01;break;
        case "km": $outputNumber = $inputNumber*0.001;break;
        }
    break;
    }
echo $outputNumber;

   ?>
  </body>
  </html>

What is the problem here ? I tried removing all the switches and cases and it still gave me the same error.

Cryt
  • 1
  • 1

1 Answers1

3

Very simple you work with nested switch statements. That only works if you put the nested switch in brackets.

switch($inputFormat){
    case "meter": {
                ^^^^
    switch ($outputFormat){
    case "pico": $outputNumber = $inputNumber*1000000000000;break;  
    case "nano": $outputNumber = $inputNumber*1000000000;break;  
    case "micro": $outputNumber = $inputNumber*1000000;break;  
    case "mm": $outputNumber = $inputNumber*1000;break;  
    case "cm": $outputNumber = $inputNumber*100;break;
    case "deci": $outputNumber = $inputNumber*10;break;         
    case "meter": $outputNumber = $inputNumber;break;
    case "deca": $outputNumber = $inputNumber*0.1;break;
    case "hm": $outputNumber = $inputNumber*0.01;break;
    case "km": $outputNumber = $inputNumber*0.001;break;
    }
    break;
   }
}

Otherwise you have a syntax error.

René Höhle
  • 26,716
  • 22
  • 73
  • 82
  • Still gives me the same error. – Cryt Jun 16 '17 at 14:19
  • Actually if you copy **exactly** what's shown and paste it into an empty PHP file it works fine (I replaced `$_POST` with `$_REQUEST` so I could just drop the vars in the URL - but that was it). Using PHP 5.6.8 on Apache 2.4. I suspect there's something else going on. – CD001 Jun 16 '17 at 14:44