Oh, and I haven't +1 or -1'd. I write in many languages, some of which don't have method keywords (like Java: public void doSomething()) and some of which do (like PHP: public function doSomething()). I trip up whenever I switch between languages, and it's in both directions.
Ultimately, I feel the keyword is rather useless from a readability standpoint. The only advantage is for searching (again, moreso on functions than methods) but still, the argument is there. 2010/11/28 Dallas Gutauckis <dal...@gutauckis.com> > > > 2010/11/28 Ángel González <keis...@gmail.com> > > Dallas Gutauckis wrote: >> > Just to be clear, this works on the assumption that we don't know the >> class >> > name that the function resides in? >> > >> > I understand the search argument, but to me it only applies to >> functions, >> > not methods. Is anyone arguing for removing the T_FUNCTION requirement >> on >> > functions? >> >> Even knowing the class you are calling, and assuming the common >> convention of >> one file per class, you may not know in which file is it implemented. >> It's annoying >> to go into the class, find out it's not there, grep the parent class, >> and having to >> repeat the process three or four levels up. >> Whereas with a unique enough name, grepping the functions get all the >> possible >> implementations. >> >> Plus, it's not always easy to know in which class to look something :-) >> >> > I understand the concern from above, but I don't agree with it > fundamentally. The kind of practice suggested by this search mechanic tells > me that either there is lack of or little documentation, and lack of or > little understanding of the codebase in which the code resides thereby > making this argument flawed based solely on the assumption that the majority > of code is (or should be) poorly maintained/documented. > > Below is simply bad programming practice in many ways. No validation of > type (neither through type-hinting nor an instanceof check) is done, which > is why the code is so difficult to trace back. Presumably, you'd also have > some form of documentation (PHPDoc, anyone?) that would facilitate the > search for the declaration of that function. Again, that assumes a better > programming practice than is being provided as the example below. One would > hope that someone excluding their function keyword would also be "up to > date" enough to be validating objects. > > >> function baz( $param ) { >> $param->morlocks(); >> } >> >> >