Различает ли их php или я должен использовать разные имена? Это неправильно в oop, но, возможно, php очень удобен для пользователя.
Доступ к свойствам объекта возможен только с использованием синтаксиса $this->property. Они не являются псевдонимами и не отображаются в локальной области. Таким образом, PHP не может спутать параметр функции с переменной объекта. Два разных обозначения.
$this->property
public function whatever($parameter) { $parameter != $this->parameter; }