我还在学习OOP,所以这可能是不可能的(尽管如果是这样我会很惊讶),我需要一些帮助来调用另一个类的方法。
例如,在ClassA I
中有这样的方法:
function getName()
{
return $this->name;
}
现在从ClassB
(不同的文件,但在相同的目录中),我想调用ClassA
的getName()
,我该怎么做呢?我试着只做一个include()
,但这不起作用。
谢谢!
发布于 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();
?>
发布于 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
。
发布于 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();
https://stackoverflow.com/questions/13503734
复制相似问题