PHP: вызов метода другого класса

Я все еще изучаю ООП, поэтому это может 9X_php.ini быть даже невозможно (хотя я был бы удивлен, если 9X_oo-design так), мне нужна помощь в вызове другого 9X_php5 метода классов.

Например, в ClassA I есть этот метод:

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

теперь 9X_object-oriented-modeling из ClassB (другой файл, но в том же каталоге), я 9X_php5 хочу вызвать ClassA getName(), как мне это сделать? Я попытался 9X_php-frameworks просто выполнить include(), но это не сработало.

Спасибо!

41
0
3
Общее количество ответов: 3

Ответ #1

Ответ на вопрос: PHP: вызов метода другого класса

//file1.php
name;
   }   
}
?>

//file2.php
getName();
       echo $name;    //Prints John
     }
   }

   $classb = new ClassB();
   $classb->callA();
?>

9X_oo

91
3

  • правильно - это include, вероятно, должно быть в управляющем файле, который вызывает как A, так и B в ...

Ответ #2

Ответ на вопрос: PHP: вызов метода другого класса

Если это отдельные классы, вы можете сделать 9X_php5 что-то вроде следующего:

class A
{
    private $name;

    public function __construct()
    {
        $this->name = 'Some Name';
    }

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

class B
{
    private $a;

    public function __construct(A $a)
    {
        $this->a = $a;
    }

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

$a = new A();
$b = new B($a);

$b->getNameOfA();

В этом примере я 9X_oops сначала создал новый экземпляр класса A. И 9X_ood после этого я создал новый экземпляр класса 9X_oo B, которому я передаю экземпляр A в конструктор. Теперь 9X_object-oriented-design B может получить доступ ко всем открытым 9X_oops членам класса A с помощью $this->a.

Также обратите 9X_php-frameworks внимание, что я не создаю экземпляр класса 9X_oo A внутри класса B, потому что это будет означать, что 9X_oops я плотно объединю два класса. Это затрудняет:

  1. модульное тестирование вашего класса B
  2. заменить класс A на другой класс

21
0

Ответ #3

Ответ на вопрос: PHP: вызов метода другого класса

Вам потребуется экземпляр ClassA в ClassB 9X_php-mail или ClassB наследовать ClassA

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

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

Без наследования 9X_ood или метода экземпляра вам понадобится ClassA, чтобы 9X_ood иметь статический метод

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

--- другой файл ---

echo ClassA::getName();

Если 9X_object-oriented вы просто хотите вызвать метод из экземпляра 9X_php-cli класса:

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

--- другой файл ---

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

Независимо от 9X_php-mail того, какое решение вы выберете, необходим 9X_php require 'ClassA.php.

10
1

  • `ClassA :: getName();` - очарование.<p><span clas ...