PHP Doku:: Objective interface - internals2.counter.examples.objective.html

Verlauf / Chronik / History: (1) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchPHP im Kern: Das Entwicklerhandbuch für die Zend EngineThe "counter" Extension - A Continuing ExampleBeispieleObjective interface

Ein Service von Reinhard Neidl - Webprogrammierung.

Beispiele

<<Extended interface

The Counter class>>

Objective interface

The objective interface provides an object-oriented way to access the extended interfaces. The following example shows how the above one would be implemented using the objective interface. The output of this example is exactly the same, except that instead of printing "Not a valid counter!", this will instead issue a PHP warning that the variable $counter_three is not an object. This example shows that it is possible to subclass the Counter class defined by the extension, as well as that the counter's value is maintained using an instance variable rather than method access.

Beispiel #1 "counter"'s objective interface

<?php
class MyCounter extends Counter
{
    public function 
printCounterInfo() {
        
printf("Counter's name is '%s' and is%s persistent. Its current value is %d.\n",
            
$this->getMeta(COUNTER_META_NAME),
            
$this->getMeta(COUNTER_META_IS_PERSISTENT) ? '' ' not',
            
$this->value);
    }
}

Counter::setCounterClass("MyCounter");
if ((
$counter_one Counter::getNamed("one")) === NULL) {
    
$counter_one = new Counter("one"0COUNTER_FLAG_PERSIST);
}
$counter_one->bumpValue(2); // we aren't allowed to "set" the value directly
$counter_two = new Counter("two"5);
$counter_three Counter::getNamed("three");
$counter_four = new Counter("four"2COUNTER_FLAG_PERSIST COUNTER_FLAG_SAVE COUNTER_FLAG_NO_OVERWRITE);
$counter_four->bumpValue(1);

$counter_one->printCounterInfo();
$counter_two->printCounterInfo();
$counter_three->printCounterInfo();
$counter_four->printCounterInfo();
?>

Keine BenutzerBeiträge.
- Beiträge aktualisieren...



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)