K!

by Karl Bunyan

Programming, PHP, JavaScript, .Net, motorbikes, pubs, poker, football, news, restaurants and anything else

Facebook
http://twitter.com/karlbunyan

Tuesday, December 14, 2004

PHP 5: Class hinting

Class hinting is where the class of object to be passed into a method is specified in the function call.

e.g.

abstract class User
{
 protected $logState;
 
 public function User()
 {
  $this->logState = new LogState()
 }
 
 public function setLogstate(LogState $logState)
 {
  $this->logState = $logState;
 }
}

This code will throw a runtime error if the variable passed into the setLogstate method is anything but a LogState object.

The benefits of this are twofold:

  • Errors in code are trapped at an earlier point in runtime. If the type was not checked then $this->logState may contain, for example, a string or other variable type and the mistake not caught until much further through processing making it more difficult to locate the source of the error.
  • The code is self-documenting as it is obvious to anyone reading the setLogstate method what class of object $logState will contain

The hint may not just be a class, it can also contain the name of an interface. Hence a method such as:

function saveSomething(Saveable $objectToSave)
{
 //Do things with $objectToSave
} 

will allow through any object which implements the Saveable interface.

Link to this post

Comments:
Post a Comment

Recent posts in the Programming category

Recent posts in the PHP category

Archive

Other links

Change the background image