| Home |
|
» Kategorien
» Seiten » Suche |
« OS X kernel_task CPU-Usage Magento Serverumzug »
PHP: Bit FlagsIn manchen Fällen können Bit Flags in PHP-Skripten sehr nützlich sein. Etwa wenn es darum geht, Kennern des binären Zahlensystems sollten also mal einen Blick darauf werfen. Alle anderen sollten dringend zu Das Prinzip ist eigentlich ganz einfach: Es werden einzelne Bits einer Integer Variablen gesetzt. Mit einer Ein kleines Beispiel zu Bit Flags in PHP5: class example_controller {
/**
* Flags set by $this->setFlags()
*
* @var int
*/
private $flags = 0;
/**
* Instantiate the renderer object if this flag is set
*
* @var int
*/
const FLAG_RENDERER = 1;
/**
* Do something cool if this flag is set
*
* @var int
*/
const FLAG_DO_COOL_STUFF = 2;
/**
* Do even more cool stuff if this flag is set
*
* @var int
*/
const FLAG_EVEN_MORE_STUFF = 4;
/**
* Initializes this object
*
*/
public function init() {
$this->setFlags();
$this->processFlags();
}
/**
* Setting the flags according to parameters
*
*/
private function setFlags() {
if(!empty($_GET['action'])) {
switch($_GET['action']) {
case 'createFoo':
$this->flags |= self::FLAG_RENDERER;
break;
case 'saveFoo':
$this->flags |= self::FLAG_RENDERER;
$this->flags |= self::FLAG_DO_COOL_STUFF;
break;
}
}
}
/**
* Instantiates objects by flags
*
*/
private function processFlags() {
// instantiate renderer
if(($this->flags & self::FLAG_RENDERER) > 0) {
require_once(EXTENSION_LIBPATH . 'class.example_renderer.php');
$this->renderer = example_renderer::getInstance();
$this->renderer->init();
}
// do cool stuff
if(($this->flags & self::FLAG_DO_COOL_STUFF) > 0) {
require_once('./lib/class.cool_stuff_factory.php');
$myCoolStuff = cool_stuff_factory::makeInstance();
$myCoolStuff->save();
}
// do even more cool stuff
if(($this->flags & self::FLAG_EVEN_MORE_STUFF) > 0) {
require_once('./lib/class.even_more_stuff.php');
}
}
}
Freitag, März 6th, 2009 and is filed under PHP, Programmierung. You can follow any responses to this entry through the RSS 2.0 feed. Both comments and pings are currently closed. Comments are closed.
© 2007 - 2009 Thorsten Boock
nerdcenter is proudly powered by
WordPress
Entries (RSS) and Comments (RSS). Calella | Lloret de Mar Reisen | Stalker Clear Sky | Empire Total War |
» Archiv
|