1

コード例;

PHP Webページ:(index.php)

 <html><head></head>
    <body>
    <?php 
    include("class_validation.php");
    $val = new validation();

        if(isset($_POST['action'])) doSomething();

    function doSomething() {
        $val->validate(); //I AM UNABLE TO DO THIS!
    }
    ?>
    </body>
    </html>

PHPファイル:(class_validation.php)

<?php
class validation()
{
    function validate(){
        //some validation
    }
}
?>

質問:PHP Webページで作成した関数の「class_validation.php」ファイルから関数を呼び出すにはどうすればよいですか?関数doSomething()を正しく呼び出すことも、関数$ val-> validate();を呼び出すこともできます。別の機能に配置されていない場合。これを行う方法はありますか?

4

2 に答える 2

3

$valdoSomething()その関数呼び出しでは範囲外です。パラメータとして関数に渡します。

// Define the function to accept a parameter. Use a type hint to be sure it is 
// a validation object
function doSomething(validation $val) {
  $val->validate(); 
}

if(isset($_POST['action'])) doSomething($val);

(型ヒントに関する PHP ドキュメント)

または、お勧めglobalしませんが、関数内でキーワードを使用してグローバルを参照することもできます$val

function doSomething() {
  // Don't do it this way. The func parameter is preferred
  global $val;
  $val->validate(); 
}
于 2012-11-16T02:52:47.450 に答える
0

無名関数でのみ利用可能なクロージャのサポートを探しているようです。

コードサンプルによると、それは正しいユースケースではないようです。たぶん、この値を関数パラメータとして渡す必要がありますか?

于 2012-11-16T02:53:12.033 に答える