🧱 Суть

В 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

🔗 Связано