Итак, что я хочу сделать, это иметь библиотеку классов для orderprocess
, где orderprocess
состоит из разных частей, таких как адрес, личная информация и т. д. Итак, мой код должен выглядеть примерно так:
$process = new orderprocess();
print $process->orderpart("address");
И тогда я хочу orderpart()
функция будет немного похожа на:
public function orderpart($part){
$name = "orderprocess_" . $part;
$class = new $name();
return $class;
}
Единственная вещь, класс матери, orderprocess
имеет ряд открытых и защищенных переменных, которые я хочу, чтобы подкласс наследовал или имел доступ. Таким образом, он будет иметь переменные для отслеживания состояния формы, поэтому исходный код будет выглядеть так:
$process = new orderprocess();
print $process->orderpart("address");
if ($process->status["address"] == "done"){
print $process->orderpart("personal");
}
Это означает, что родитель orderprocess
класс должен отслеживать вещи в своих дочерних классах.
«Расширение» только расширяет функциональность родительского класса, а не экземпляра, насколько я знаю. Я хотел бы orderpart()
функция для создания нового подкласса, который расширяет родительский класс а также наследует или может получить доступ к родительским переменным пример родительского класса.
Пожалуйста, сообщите, если вы думаете, что я поступаю об этом неправильно.
Просто сначала определите все ваше имя класса:
public function orderpart($part){
$classname = "orderprocess_" . $part;
return new $classname();
}
Ваша фраза довольно запутанная, но, возможно, это то, что вы ищете.
class Parent
{
protected $status;
public function __construct(){
/* Set status to whatever here */
}
public function orderpart($part)
{
return "orderprocess_" . $part;
}
public function status($part)
{
if ($this->status[$part] == "done"){
return $process->orderpart("personal");
}
return false;
}
}
class SubClass extends Parent
{
public function orderpart($string)
{
return "orderprocess_" . $part;
}
}
Тогда вы можете просто назвать это, я верю:
$SubClass->status($part);