twin, твой пример слишком "творческий" :)
>Где здесь класс?Класс всегда есть. "Просто объектов" не бывает. Объект должен принадлежать какому-то классу. В твоем примере, чтобы
var_dump вернул то, что ты написал, необходимо чтобы класс
example уже был объявлен. Но, даже если класс
example не будет объявлен,
var_dump скажет тебе, что твой
$obj является экземпляром класса
__PHP_Incomplete_Class.
>Теперь можешь написать любой класс с названием example, и он будет работать с этим объектом.>Тот же фокус можно провернуть на любом объектном ЯП, поддерживающем сериализацию.Ну попробуй провернуть этот фокус, скажем, в Java.
Позволю себе перефразировать твои мысли "не творческим" языком.
Есть данные. Например, строка в БД (на мой взгляд хороший пример). На основе одной и той же строки из БД (значений столбцов) мы можем создать разные объекты (экземпляры разных классов). Например:
+----+-------+--------+
| id | width | height |
+----+-------+--------+
| 01 | 2000 | 1000 |
+----+-------+--------+
| 02 | 200 | 100 |
+----+-------+--------+
| 03 | 20 | 10 |
+----+-------+--------+
Есть, наверное, бесконечное множество объектов, которые могут содержать
ширину и
высоту. Более того, легко можно придумать даже "созвучные классы". Ну самое первое, что приходит в голову -- класс с названием
Window. Один
Window может представлять окно в доме. Другой
Window -- окно gui-приложения. А третий может представлять оконную функцию, которая принимает параметры
width и
height. Ну и тд.
А вот
объектом эти
данные становятся непосредственно после создания экземпляра класса.
Так вот в этой схеме общее с ООП -- только названия некоторых терминов.
P.S. Но да, "из-за отсутствия строгого и общепризнанного определения ООП" мы имеем "вечный спор ооп или не ооп".
_____________
Чатик в телеге