Quantcast
Channel: Coding and Programing » php
Viewing all articles
Browse latest Browse all 10

What’s deal with leading underscore in PHP class methods

$
0
0

Problem And Question

While looking over various PHP libraries I’ve noticed that a lot of people choose to prefix some class methods with a single underscore, such as

public function _foo()

…instead of…

public function foo()

I realize that ultimately this comes down to personal preference, but I was wondering if anyone had some insight into where this habit comes from.

My thought is that it’s probably being carried over from PHP 4, before class methods could be marked as protected or private, as a way of implying “do not call this method from outside the class”. However, it also occurred to me that maybe it originates somewhere (a language) I’m not familiar with or that there may be good reasoning behind it that I would benefit from knowing.

Any thoughts, insights and/or opinions would be appreciated.

Best Solution And Answer

It’s from the bad old days of Object Oriented PHP (PHP 4). That implementation of OO was pretty bad, and didn’t include things like private methods. To compensate, PHP developers prefaced methods that were intended to be private with an underscore. In some older classes you’ll see /**private*/ __foo() { to give it some extra weight.

I’ve never heard of developers prefacing all their methods with underscores, so I can’t begin to explain what causes that.


Viewing all articles
Browse latest Browse all 10

Trending Articles