首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PHP:调用另一个类的方法

PHP:调用另一个类的方法
EN

Stack Overflow用户
提问于 2012-11-22 07:29:00
回答 3查看 131.5K关注 0票数 39

我还在学习OOP,所以这可能是不可能的(尽管如果是这样我会很惊讶),我需要一些帮助来调用另一个类的方法。

例如,在ClassA I中有这样的方法:

function getName()
{
    return $this->name;
}

现在从ClassB (不同的文件,但在相同的目录中),我想调用ClassAgetName(),我该怎么做呢?我试着只做一个include(),但这不起作用。

谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-11-22 07:33:26

//file1.php
<?php

class ClassA
{
   private $name = 'John';

   function getName()
   {
     return $this->name;
   }   
}
?>

//file2.php
<?php
   include ("file1.php");

   class ClassB
   {

     function __construct()
     {
     }

     function callA()
     {
       $classA = new ClassA();
       $name = $classA->getName();
       echo $name;    //Prints John
     }
   }

   $classb = new ClassB();
   $classb->callA();
?>
票数 87
EN

Stack Overflow用户

发布于 2012-11-22 07:33:01

您需要在ClassB中拥有ClassA的实例,或者让ClassB继承ClassA

class ClassA {
    public function getName() {
      echo $this->name;
    }
}

class ClassB extends ClassA {
    public function getName() {
      parent::getName();
    }
}

如果没有继承或实例方法,则需要ClassA才能拥有静态方法

class ClassA {
  public static function getName() {
    echo "Rawkode";
  }
}

--其他文件

echo ClassA::getName();

如果您只是希望从类的实例中调用方法:

class ClassA {
  public function getName() {
    echo "Rawkode";
  }
}

--其他文件

$a = new ClassA();
echo $a->getName();

无论您选择哪种解决方案,都需要require 'ClassA.php

票数 10
EN

Stack Overflow用户

发布于 2012-11-22 07:42:04

文件1

class ClassA {

    public $name = 'A';

    public function getName(){
        return $this->name;
    }

}

文件2

include("file1.php");
class ClassB {

    public $name = 'B';

    public function getName(){
        return $this->name;
    }

    public function callA(){
        $a = new ClassA();
        return $a->getName();
    }

    public static function callAStatic(){
        $a = new ClassA();
        return $a->getName();
    }

}

$b = new ClassB();
echo $b->callA();
echo $b->getName();
echo ClassB::callAStatic();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13503734

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档