summaryrefslogtreecommitdiffstats
path: root/oo
diff options
context:
space:
mode:
authorKyle Kaminski <kyle@xenomedia.com>2014-04-09 22:02:09 -0500
committerKyle Kaminski <kyle@xenomedia.com>2014-04-09 22:02:09 -0500
commitaf5272c6784050a97ce968d067274b86099fc3af (patch)
tree916d087495e8e67647597931ddb0fed79aa58544 /oo
parent55cfec6918fca9d3790ec8ab231d0178349fe2fa (diff)
downloadphpsandbox-af5272c6784050a97ce968d067274b86099fc3af.tar.gz
phpsandbox-af5272c6784050a97ce968d067274b86099fc3af.tar.bz2
phpsandbox-af5272c6784050a97ce968d067274b86099fc3af.zip
some oo concepts
Diffstat (limited to 'oo')
-rw-r--r--oo/abstract.php27
-rw-r--r--oo/magic_methods.php16
-rw-r--r--oo/singleton.php3
3 files changed, 46 insertions, 0 deletions
diff --git a/oo/abstract.php b/oo/abstract.php
new file mode 100644
index 0000000..141f7b7
--- /dev/null
+++ b/oo/abstract.php
@@ -0,0 +1,27 @@
+<?php
+
+abstract class Polygon {
+ protected $sides = 0;
+ abstract protected function area();
+ public function getSidesNum() {
+ return $this->sides;
+ }
+}
+
+class Triangle extends Polygon {
+ private $width = 0;
+ private $height = 0;
+ function __construct($w, $h) {
+ /* parent::__construct(); perhaps abstract classes do not have a ctor */
+ $this->width = $w;
+ $this->height = $h;
+ $this->sides = 3;
+ }
+
+ public function area() {
+ return $this->width * $this->height * 1/2;
+ }
+}
+
+$rightTri = new Triangle(4,4);
+echo "area: {$rightTri->area()}, sides: {$rightTri->getSidesNum()}" . PHP_EOL;
diff --git a/oo/magic_methods.php b/oo/magic_methods.php
new file mode 100644
index 0000000..8d9da79
--- /dev/null
+++ b/oo/magic_methods.php
@@ -0,0 +1,16 @@
+<?php
+
+abstract class Base {
+ protected $arr;
+
+ function __construct() {
+ echo 'dispatching ctor';
+ $this->arr = array();
+ }
+
+ abstract protected function foo();
+}
+
+class Derived extends Base {
+
+} \ No newline at end of file
diff --git a/oo/singleton.php b/oo/singleton.php
new file mode 100644
index 0000000..50cce95
--- /dev/null
+++ b/oo/singleton.php
@@ -0,0 +1,3 @@
+<?php
+
+