🧱 Суть
В PHP используются разные операторы для обращения к классам и объектам:
::– доступ через класс->– доступ через объект
📦 Проблема
1. Путают :: и ->
Schema::table(...)$table->renameColumn(...)Выглядят похоже, но работают с разными сущностями.
2. Непривычный синтаксис после JavaScript
$table->renameColumn(...)В JavaScript используется точка (.), а в PHP – стрелка (->).
✅ Решение
Разделять работу с классами и объектами.
💻 Код
Оператор ::
Используется для обращения к классу.
Пример:
Math::sum(1, 2);Также применяется для:
- static-методов
- static-свойств
- констант
Оператор ->
Используется для обращения к объекту.
Пример:
$table->renameColumn('name', 'username');Что происходит:
$table– объект->– обращение к его методуrenameColumn()– вызываемый метод
Аналогия с JavaScript
PHP:
$table->renameColumn('name', 'username');JavaScript:
table.renameColumn('name', 'username');Разница только в синтаксисе.
Почему не используется .
В PHP оператор . предназначен для конкатенации строк.
echo "Hello" . " World";Поэтому для объектов используется ->.
🎯 Вывод
::– обращение к классу->– обращение к объекту.в PHP используется для объединения строк- понимание этих операторов – основа работы с Laravel