Object Interfaces

Object Interfaces

Object interfaces allow you to create code which specifies which methods a class must implement, without having to define how these methods are handled.

Interfaces are defined using the interface keyword, in the same way as a standard class, but without any of the methods having their contents defined.

All methods declared in an interface must be public, this is the nature of an interface.

implements

To implement an interface, the implements operator is used. All methods in the interface must be implemented within a class; failure to do so will result in a fatal error. Classes may implement more than one interface if desired by separating each interface with a comma.

Note: A class cannot implement two interfaces that share function names, since it would cause ambiguity.

Examples

Example 19-18. Interface example

<?php
// Declare the interface 'iTemplate'
interface iTemplate
{
    
public function setVariable($name, $var);
    
public function getHtml($template);
}

// Implement the interface
// This will work
class Template implements iTemplate
{
    
private $vars = array();
  
    
public function setVariable($name, $var)
    {
        
$this->vars[$name] = $var;
    }
  
    
public function getHtml($template)
    {
        foreach(
$this->vars as $name => $value) {
            
$template = str_replace('{' . $name . '}', $value, $template);
        }

        return
$template;
    }
}

// This will not work
// Fatal error: Class BadTemplate contains 1 abstract methods
// and must therefore be declared abstract (iTemplate::getHtml)
class BadTemplate implements iTemplate
{
    
private $vars = array();
  
    
public function setVariable($name, $var)
    {
        
$this->vars[$name] = $var;
    }
}

?>

See also the instanceof operator.



Links
StartLogic $5.95/mo
  • 200GB Diskspace
  • 2000GB Bandwidth
  • Host 10 Domains
  • CGI PHP MySQL
  • eCommerce Enabled
  • 30 Day Money Back Guarantee

IX Web Hosting $6.45/mo
  • 400GB Diskspace
  • 2500GB Bandwidth
  • Host 8 Domains
  • PHP Perl CGI SSI
  • MySQL PostgreSQL
  • 3 Free Domain For Life
  • Additional costs for Windows plan + $2.50:ASP/.NET, Cold Fusion, ODBC/DSN, MSSQL

Aplus.net $7.46/mo
  • 170GB Diskspace
  • 2000GB Bandwidth
  • PHP Perl Ruby C/C++ Python TCL SSI CGI
  • 2 Free Domain Names
  • DNS Management
  • 99.99% Uptime

Hosting Companies


Partners


Quick Search
Platform

Price

Diskspace

Bandwidth


 Advance Search
 Show All Companies


Reference & Manual

If you are looking for dedicated servers, look no further. HostPulse.com is a site devoted to help web users find cheap web hosting and dedicated servers.


Free Sitemap Generator Host Login/Register | Contact Us | Terms | Add Links
Thumbnails by Thumbshots.org © 2002-2008 CheapHostDir.com