diff options
author | Kyle Kaminski <kyle@kkaminsk.com> | 2013-06-16 03:25:26 -0500 |
---|---|---|
committer | Kyle Kaminski <kyle@kkaminsk.com> | 2013-06-16 03:25:26 -0500 |
commit | 1bad4fc00814e2c03ecadaa7faf93c6372f5bd30 (patch) | |
tree | 88104590feefcb804f5fa0ca57ee1a6c76cbf0a7 /class_ex.php | |
download | phpsandbox-1bad4fc00814e2c03ecadaa7faf93c6372f5bd30.tar.gz phpsandbox-1bad4fc00814e2c03ecadaa7faf93c6372f5bd30.tar.bz2 phpsandbox-1bad4fc00814e2c03ecadaa7faf93c6372f5bd30.zip |
initial commit
Diffstat (limited to 'class_ex.php')
-rw-r--r-- | class_ex.php | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/class_ex.php b/class_ex.php new file mode 100644 index 0000000..710a28b --- /dev/null +++ b/class_ex.php @@ -0,0 +1,72 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>Hacker's Corner</title>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+</head>
+<body>
+<h2>Beyond The Basics?</h2>
+
+<?php
+
+class Person
+{
+ public $name; /* good convention to put public explicitly */
+ public $lname; /* but public in front of 'var' errors out yo */
+ /* should I just avoid var modifier */
+ /* var public means public public, wrong! */
+
+ static $id = 0;
+
+ function __construct($name, $lname)
+ {
+ $this->name = $name;
+ $this->lname = $lname;
+ Person::$id++;
+ }
+
+ function __clone()
+ {
+ $this->increment(); /* we're cloning, creating another person, so increase count */
+ }
+
+ function fullname()
+ {
+ return $this->name . " " . $this->lname;
+ }
+
+ static function increment()
+ {
+ self::$id++; /* another way to mean Person:: */
+ }
+}
+
+class Employee extends Person
+{
+ static function oneup()
+ {
+ parent::increment(); /* refer to parent's stuff */
+ }
+};
+
+$person = new Person("Kyle", "Broflovski");
+echo $person->fullname() . "<br />\n";
+
+$me = clone $person;
+$me->lname = "K";
+echo $me->fullname() . "<br />\n";
+
+echo "total ids: " . Person::$id . "<br />\n";
+
+?>
+
+<p>
+== is like memcmp in C, it compares whole classes and attributes<br />
+=== is like == in C, simply comparing references<br />
+</p>
+
+</body>
+</html>
+
+
|