从另一个文件调用函数

时间:2017-09-05 09:16:46

标签: php wordpress

我需要getdata()中的class-GetData.php功能来调用此shortcode_function()

require_once plugin_dir_path( __FILE__ ) . '/class-GetData.php';

add_shortcode('registration-plugin','shortcode_function');    
function shortcode_function()
{
    ob_start();
    insert_data();
    getdata();   //from GetData.php
    return ob_get_clean();
}
?>

类访问getdata.php

<?php

    class GetData
    {
       public function getdata()
       { 
          //something here
       }
    }

    $getData = new GetData();

但是我得到了未定义的函数错误:

  

调用未定义的函数getdata()

2 个答案:

答案 0 :(得分:1)

使用GetData类的对象来调用在类中创建的函数。

require_once plugin_dir_path( __FILE__ ) . '/class-GetData.php';

add_shortcode('registration-plugin','shortcode_function');    
function shortcode_function()
{
    ob_start();
    insert_data();
    $getData = new GetData(); //Create Getdata object
    $getData->getdata(); //call function using the object
    return ob_get_clean();
}

类访问getdata.php

class GetData
{
   public function getdata()
   { 
      //something here
   }
}

答案 1 :(得分:1)

您正在调用Class Method,就像正常的函数调用一样。内部Class Method需要this关键字来调用类中的方法。如果您想从课堂外调用Public函数/方法,则必须创建Object

  

尝试使用 -

function shortcode_function(){
  ob_start();
  insert_data();
  $getData = new GetData(); #Create an Object
  $getData->getdata();      #Call method using Object
  return ob_get_clean();
}
  

示例:

class GetData{
   public function getdata() { 
      //something here
   }

   public function TestMethod(){
      $this->getdata(); #Calling Function From Inner Class
   }
}

$getData = new GetData(); #Creating Object
$getData->getdata();      #Calling Public Function from Outer Class
  

以下是Private,Public and Protected

的解释