summaryrefslogtreecommitdiff
path: root/trunk/Examples/php/proxy/runme.php
diff options
context:
space:
mode:
authorWilliam S Fulton <wsf@fultondesigns.co.uk>2010-06-02 20:53:17 +0000
committerWilliam S Fulton <wsf@fultondesigns.co.uk>2010-06-02 20:53:17 +0000
commit2824b0cbb66e715490e1ef13250bd675d87b32d9 (patch)
treec3bc8d54c6d73f2b7ce08cac34172dbc9f5e5b95 /trunk/Examples/php/proxy/runme.php
parent289cfef4b4766ff266f3b1bdda8ca3a952e5a047 (diff)
downloadswig-39489534f6104d5a2938392418dbb7189c037f8b.tar.gz
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/tags/rel-2.0.0@12089 626c5289-ae23-0410-ae9c-e8d60b6d4f22
Diffstat (limited to 'trunk/Examples/php/proxy/runme.php')
-rw-r--r--trunk/Examples/php/proxy/runme.php68
1 files changed, 68 insertions, 0 deletions
diff --git a/trunk/Examples/php/proxy/runme.php b/trunk/Examples/php/proxy/runme.php
new file mode 100644
index 000000000..e70ab229f
--- /dev/null
+++ b/trunk/Examples/php/proxy/runme.php
@@ -0,0 +1,68 @@
+<?php
+
+# This file illustrates the low-level C++ interface
+# created by SWIG. In this case, all of our C++ classes
+# get converted into function calls.
+
+include("example.php");
+
+# ----- Object creation -----
+
+print "Creating some objects:\n";
+$c = example::CircleFactory(10);
+print " Created circle \$c with area ". $c->area() ."\n";
+$s = new Square(10);
+print " Created square \$s\n";
+
+# ----- Access a static member -----
+
+print "\nA total of " . Shape::nshapes() . " shapes were created\n";
+
+# ----- Member data access -----
+
+# Set the location of the object.
+# Note: methods in the base class Shape are used since
+# x and y are defined there.
+
+$c->x = 20;
+$c->y = 30;
+$s->x = -10;
+$s->y = 5;
+
+print "\nHere is their current position:\n";
+print " Circle = (" . $c->x . "," . $c->y . ")\n";
+print " Square = (" . $s->x . "," . $s->y . ")\n";
+
+# ----- Call some methods -----
+
+print "\nHere are some properties of the shapes:\n";
+foreach (array($c,$s) as $o) {
+ print " ".get_class($o)." \$o\n";
+ print " x = " . $o->x . "\n";
+ print " y = " . $o->y . "\n";
+ print " area = " . $o->area() . "\n";
+ print " perimeter = " . $o->perimeter() . "\n";
+ }
+
+# Need to unset($o) or else we hang on to a reference to the Square object.
+unset($o);
+
+# ----- Delete everything -----
+
+print "\nGuess I'll clean up now\n";
+
+# Note: this invokes the virtual destructor
+unset($c);
+$s = 42;
+
+print Shape::nshapes() . " shapes remain\n";
+
+print "Manually setting nshapes\n";
+
+Shape::nshapes(42);
+
+print Shape::get_nshapes() ." == 42\n";
+
+print "Goodbye\n";
+
+?>