从另一个php文件调用函数

时间:2013-09-12 04:41:02

标签: php

我有2个文件

file1.php

<?php
      Class A
      {
          public static function _test
          {
          }
      }
      function get_sql($id)
      {
      }
      function get_data($ids)
      {
      }
?>

在file2.php我写过

require_once('file1.php');
  $a = get_sql($id);

为什么我无法调用该函数并得到我的结果?

3 个答案:

答案 0 :(得分:0)

在file1.php中尝试这个

<?php
  Class A {
     public static function _test {
     }
     function get_sql($id) {
        echo $id;
     }
     function get_data($ids) {
     }
  }
?>

在file2.php中首先需要该文件,然后对此进行编码

require_once('file1.php');
$a = new A();
$a->get_sql($id);

OR在函数中发送静态值

$a->get_sql(5);

这是你代码中的第一个错误

public static function _test{
    }
  } //this bracket is related to the class

答案 1 :(得分:0)

这是一个问题,如果你想让函数get_sql()和get_data()作为A类中的方法:

如果是,则在将圆括号添加到函数public static function _test:

后,user2727841中的代码将起作用
public static function _test()
  {
  }

将相同的括号添加到同一个函数后,您的代码也会起作用,但函数get_sql()和get_data()都在A类之外。

修改 我认为这些功能都在A级之外。 请将圆括号添加到A类的公共静态函数_test中 - 它是语法错误 - 比我希望它可以工作。

答案 2 :(得分:0)

嗯,有一件事你没有从get_sql($id)函数返回任何内容。

假设您在原始代码中返回了某些内容;我希望你知道函数不是类的一部分(它在类的范围之外定义)。但出于教育目的,您可以通过执行以下操作在类中调用静态方法:

$a = A::get_sql($id);

这也意味着以下列方式定义函数:

  Class A{
          public static function get_sql($id){
            echo $id;
          }
      }