0

我有2个文件

文件1.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);

为什么我不能调用函数并得到我的结果?

4

3 回答 3

0

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

如果是,则在将圆括号添加到函数 public static function _test 后,来自 user2727841 的代码将起作用:

public static function _test()
  {
  }

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

编辑 我认为这些函数在 A 类之外。请将圆括号添加到 A 类中的公共静态函数 _test - 这是语法错误 - 我希望它会起作用。

于 2013-09-12T05:27:29.293 回答
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);

或在函数中发送静态值

$a->get_sql(5);

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

public static function _test{
    }
  } //this bracket is related to the class
于 2013-09-12T04:50:32.960 回答
0

一方面,你没有从get_sql($id)函数中返回任何东西。

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

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

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

  Class A{
          public static function get_sql($id){
            echo $id;
          }
      }
于 2013-09-12T06:29:25.333 回答