0

約2時間試しましたが、エラーが見つかりません。変数がhtmlフォームからこのページに渡され、「hospitol」という単語のフィルターを作成して、「hospital」としてスペルを変更しようとしています。エラーはおそらく些細なことですが、私はそれを見つけることができません。どんな助けでも大歓迎です。

<?php
if ($_POST["location"] == "hospitol") 
    function convertSpace($string){
        return str_replace("Hospitol", "Hospital", $string);
    }
    $string = $_POST["location"];
    echo filter_var($string, FILTER_CALLBACK, array("options"=>"convertSpace"));
else
    $location=$_POST["location"];
?>

apacheがログに記録するエラーは次のとおりです。

PHP Parse error:  syntax error, unexpected T_STRING, expecting '(' in
home/linux/public/job_scheduler_input_check.php on line 5, referer:
http://localhost/calendar.php

注:apacheが参照している行は、大きなファイルからこれを取り出したため、正しくありません。

4

5 に答える 5

2

このコードの構造が正しくないため、1行の条件の後に関数を定義しています。わかりやすくするためにステートメントを適切に囲むには、{}角かっこを使用する必要があります。関数も最初に定義する必要があります。

<?php
function convertSpace($string){return str_replace("Hospitol", "Hospital", $string);}
if ($_POST["location"] == "hospitol") 
{
  $string = $_POST["location"];
  echo filter_var($string, FILTER_CALLBACK, array("options"=>"convertSpace"));
}
else
{
  $location=$_POST["location"];
}
?>
于 2012-05-21T06:27:45.837 に答える
1

{}はどこでifelse条件のタグを閉じ始めますか?あなたのsyantaxは間違っています。

    <?php
         if ($_POST["location"] == "hospitol") {
         function convertSpace($string){return str_replace("Hospitol", "Hospital", $string);
         $string = $_POST["location"];
         echo filter_var($string, FILTER_CALLBACK, array("options"=>"convertSpace")); }
        else {
               $location=$_POST["location"]; 
             }
 ?>
于 2012-05-21T06:27:58.243 に答える
0

ifステートメントで関数を宣言することはできないと思います。ifに{}を使用し、関数を移動します。

于 2012-05-21T06:26:40.583 に答える
0
  <?php
    if ($_POST["location"] == "hospitol") {
    function convertSpace($string){
        return str_replace("Hospitol", "Hospital", $string);
     }
    $string = $_POST["location"];
    echo filter_var($string, FILTER_CALLBACK, array("options"=>"convertSpace"));
    } 
    else
    $location=$_POST["location"];
    ?>
于 2012-05-21T06:28:29.713 に答える
0

if条件を確認してください。これは間違っており、if条件で関数を呼び出すことはお勧めできません。

于 2012-05-21T06:30:39.587 に答える