0

いくつかの関数出力を表示するための簡単なサンプル php ファイルを作成しました。ここにコードがあります..

<?php
// $printName = hello('samitha');
// $printHeader = pageHeader('main','on');

switch (key($_GET)){
    case 'red':
        $printHeader = pageHeader('red','on');
        $printName = hello('Joel');
        break;

    case 'blue':
        $printHeader = pageHeader('blue','off');
        $printName = hello('Duck');
        break;

    case 'yellow':
        //$printHeader = pageHeader('yellow','on');
        break;
}


function hello($name){
    return $name;
}


function pageHeader($header,$onoff){
    if ($onoff == 'on') {
        return $header."page header<br>";
    }
    else {return null;}
}

echo $printHeader;
echo $printName;

?>

このコードは問題なく正常に動作しています。

「example.com/php/tipo34.php?red」を呼び出すと、画面に次のように表示されます。

redpage header
Joel

そして、「example.com/php/tipo34.php?blue」を呼び出すと、画面に次のように表示されます。

Duck

以下の関数を、tipo34-req.php という別の php ファイル内に配置しようとしたところ、次のエラーが発生しました。

Fatal error: Call to undefined function pageHeader() in C:\wamp\www\php\tipo34.php on line 8

私が試したコード:

<?php
// $printName = hello('samitha');
// $printHeader = pageHeader('main','on');
switch (key($_GET)){
    case 'red':
        $printHeader = pageHeader('red','on');
        $printName = hello('samitha');
        break;

    case 'blue':
        $printHeader = pageHeader('blue','off');
        $printName = hello('kalum');
        break;

    case 'yellow':
        //$printHeader = pageHeader('yellow','on');
        break;
}

include 'tipo34-req.php';

echo $printHeader;
echo $printName;

?>

tipo34-req.php コード:

<?php
function hello($name){
    global $name;
    return $name;
}

function pageHeader($header,$onoff){ global $header, $onoff
    if ($onoff == 'on') {
        return $header."page header<br>";
    }
    else {return null;}
}
?>

この問題を解決するにはどうすればよいですか? ファイルで関数を直接使用すると機能しますが、関数を別のphpファイルに配置すると、エラーがスローされます。

ありがとう。

4

2 に答える 2

6

コンテンツの使用法の上にファイルを含めます。関数はコードの後半に含まれているため、PHP はこれらの関数を認識しません。

include 'tipo34-req.php';

switch (key($_GET)){
    case 'red':
        $printHeader = pageHeader('red','on');
        $printName = hello('samitha');
    break;

    case 'blue':
        $printHeader = pageHeader('blue','off');
        $printName = hello('kalum');
    break;

    case 'yellow':
        //$printHeader = pageHeader('yellow','on');
    break;


}

echo $printHeader;
echo $printName;

?>
于 2013-10-09T17:28:43.823 に答える