【问题标题】:php i have included a file but cant call functions which are inside classphp 我已经包含了一个文件,但不能调用类内的函数
【发布时间】:2012-04-19 07:10:33
【问题描述】:

我已经在另一个文件中包含了一个文件,现在我想使用包含文件中的一个函数。

当我转到包含的文件并将变量放在那里时,该变量被传递并且一切都很好
- 这意味着我已经包含了正确的文件。

但是当我想调用一个类内的函数时

class SimpleViewer {
.
.
.
.
function whatever(){}

它只是不调用它,当我每个它和写

致命错误:调用未定义函数 display_gallery_table()...

我确定我在正确的文件中,因为其他值传递但我什么也不能调用,因为它在类中

我做错了什么?

【问题讨论】:

  • 你需要初始化一个类的实例!
  • 这个函数怎么调用?如果它在类内,您需要先获取一个实例。
  • 您是从类中调用函数,还是在类中调用包含的函数?如果是前者,它需要是一个静态方法,或者你必须先实例化。

标签: php class function include


【解决方案1】:
$var = new SimpleViewer();
$var->whatever();

【讨论】:

    【解决方案2】:

    尝试像这样首先启动类的实例

    $myClass = new SimpleViewer();
    

    然后像这样调用函数

    $myClass->whatever();
    

    【讨论】:

    • 你们太棒了!!!!!!函数里面有变量我怎么称呼它们?
    • 如果它们是公开的,$myClass->myVariable
    • 你不能从函数外部调用函数变量,对不起。
    【解决方案3】:

    你需要先创建一个对象的实例;

    $obj = new Class();
    $obj->func();
    

    【讨论】:

      【解决方案4】:

      有很多方法可以在类之间调用函数。我知道的第一个是静态方法调用。可以通过定义class::function()来调用函数。

      示例:

      public class Parent{
          public static function check(){
              ....
              ....
          }
      }
      

      静态调用者可能看起来很像

      Parent::check()
      

      第二种方法是将类作为新对象启动。从示例中我们可以像这样调用

      $obj = new Parent;
      $obj->check();
      

      实现这一点的其余手册在php manual

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-12-23
        • 2021-08-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-02-13
        • 1970-01-01
        相关资源
        最近更新 更多