note 86050 added to language.oop5.references
| From: | lazybones_senior at osu1 dot php dot net | Date: | Wed, 01 Oct 2008 01:57:07 +0000 |
| Subject: | note 86050 added to language.oop5.references | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-144923@lists.php.net to get a copy of this message | ||
WHOA... KEEP IT SIMPLE!
In regards to secure_admin's note: You've used OOP to simplify PHP's ability to
create and use object references. Now use PHP's static keyword to simplify your OOP.
<?php
class DataModelControl {
protected static $data = 256; // default value;
protected $name;
public function __construct($dmcName) {
$this->name = $dmcName;
}
public static function setData($dmcData) {
if(is_numeric($dmcData)) {
self::$data = $dmcData;
}
}
public function __toString() {
return "DataModelControl [name=$this->name, data=" . self::$data . "]";
}
}
# create several instances of DataModelControl...
$dmc1 = new DataModelControl('dmc1');
$dmc2 = new DataModelControl('dmc2');
$dmc3 = new DataModelControl('dmc3');
echo $dmc1 . '<br>';
echo $dmc2 . '<br>';
echo $dmc3 . '<br><br>';
# To change data, use any DataModelControl object...
$dmc2->setData(512);
# Or, call setData() directly from the class...
DataModelControl::setData(1024);
echo $dmc1 . '<br>';
echo $dmc2 . '<br>';
echo $dmc3 . '<br><br>';
?>
DataModelControl [name=dmc1, data=256]
DataModelControl [name=dmc2, data=256]
DataModelControl [name=dmc3, data=256]
DataModelControl [name=dmc1, data=1024]
DataModelControl [name=dmc2, data=1024]
DataModelControl [name=dmc3, data=1024]
... even better! Now, PHP creates one copy of $data, that is shared amongst all DataModelControl
objects.
----
Server IP: 69.147.83.197
Probable Submitter: 67.150.0.127
----
Manual Page -- http://www.php.net/manual/en/language.oop5.references.php
Edit -- https://master.php.net/note/edit/86050
Del: integrated -- https://master.php.net/note/delete/86050/integrated
Del: useless -- https://master.php.net/note/delete/86050/useless
Del: bad code -- https://master.php.net/note/delete/86050/bad+code
Del: spam -- https://master.php.net/note/delete/86050/spam
Del: non-english -- https://master.php.net/note/delete/86050/non-english
Del: in docs -- https://master.php.net/note/delete/86050/in+docs
Del: other reasons-- https://master.php.net/note/delete/86050
Reject -- https://master.php.net/note/reject/86050
Search -- https://master.php.net/manage/user-notes.php