PHP не позволяет перегружать операторы (за исключением нескольких небольших исключений). Это, как говорится, вы всегда можете создать обходной путь:
class Person { ... }
class People
{
// Array of Person objects
private static $_people = Array();
// Add person object to people object
public function add(Array $persons)
{
foreach($persons as $person)
{
self::_people[] = $person;
}
}
}
$person1 = new Person;
$person2 = new Person;
$people = new People();
$people->add(Array($person1,$person2));
...
Бла бла ... Я своего рода разглагольствования. Это просто концепция более или менее с большим количеством возможностей для улучшения. Я хочу сказать, что вы можете объединить объекты вместе таким образом.
Если ваша цель - буквально применить оператор добавления к каждому свойству в двух классах и вывести сумасшедшую версию объекта Person, вы можете создать функцию, которая сделает это для вас ... это просто не будет как красиво, как $person3 = $person1 + $person2;
. Вместо этого он может выглядеть как $person3 = add($person1,$person2);
.
Вы не можете сцепить. см. «Шаблоны проектирования», чтобы понять, как получить правильный путь. –
Я думаю, вы хотите объединить объекты, но почему, если они одни и те же объекты? –
Я заинтригован (и немного обеспокоен) Что бы вы на самом деле ожидали, что ваш $ p3 будет содержать? Или это будет класс детей? –