Для дальнейшего уточнения вещи, это может помочь подумать таким образом, , Допустим, ваш Main
это класс, который выступает за транспортное средство (и, следовательно, мы переименуем его Vehicle
), так класса означает, что Vehicle
определяет характеристику veicle, но не конкретные один, чтобы сделать операции с (нам нужен экземпляра для этого). Переведем также ваш класс А в Car
и B в Truck
: поэтому они специализаций вашего основного класса, который, наряду с обладать все характеристики общего Vehicle
, расширяющие понятие «транспортного средства» и указывают конкретные модели поведения и свойств of Cars в общий, и грузовые автомобили в общий, но - и это пункт - не указывать автомобиль или грузовик. Нам нужны экземпляры.
class Vehicle
{
public $numberOfTires;
}
class Car extends Vehicle
{
function smashMe()
{
echo "Oops!";
}
}
class Truck extends Vehicle
{
function smashMe()
{
echo "More Oops!";
}
}
С этого момента мы можем определить конкретные экземпляры (ваш Porsche, мой Camaro ... разные автомобили), на которых мы можем выполнять операции (вызов методов) и установить свойства.
$genericVehicle = new Vehicle;
$myPorsche = new Car;
$yourCamaro = new Car;
$hisTruck = new Truck;
$herTruck = new Truck;
Но каждый случай остается независимым от другого.
$ A и $ B отличаются __instances__ ваших классов. Каждый из них полностью независим от другого ... любое изменение в $ A влияет только на $ A, а не на $ B. И $ foo = "test"; только устанавливает локальную varaible, называемую $ foo в методе setVar() для A, а не для класса varaible $ foo .... для этого вам понадобится $ this-> foo = "test"; –
^^ Это ваш ответ прямо там –
* (связанный) * [Изучение классов PHP] (http: // stackoverflow.com/questions/2206387/learning-php-class/2206835 # 2206835) – Gordon