【问题标题】:How to call function from php class in function from web page如何在网页函数中调用php类中的函数
【发布时间】:2012-11-04 18:28:09
【问题描述】:

代码示例;

PHP 网页:(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 网页中创建的函数中调用“class_validation.php”文件中的函数?我可以正确调用函数 doSomething() 以及调用函数 $val->validate();当不在另一个函数中时。我有办法做到这一点吗?

【问题讨论】:

    标签: php javascript html function web


    【解决方案1】:

    $val 超出了doSomething() 函数调用的范围。将其作为参数传递给函数:

    // 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 documentation on type hinting)

    或者,不推荐,您可以在函数内使用global 关键字来引用全局$val

    function doSomething() {
      // Don't do it this way. The func parameter is preferred
      global $val;
      $val->validate(); 
    }
    

    【讨论】:

      【解决方案2】:

      您似乎正在寻找关闭支持,仅适用于 anonymous functions

      根据您的代码示例,这似乎不是一个正确的用例。也许您应该将此值作为函数参数传递?

      【讨论】:

        猜你喜欢
        • 2012-02-28
        • 1970-01-01
        • 1970-01-01
        • 2017-07-29
        • 2016-02-21
        • 1970-01-01
        • 2019-01-20
        • 1970-01-01
        相关资源
        最近更新 更多