| <?php |
| |
| # This file illustrates the cross language polymorphism using directors. |
| |
| require("example.php"); |
| |
| # Class, which overwrites Callback::run(). |
| |
| class PhpCallback extends Callback { |
| function run() { |
| print "PhpCallback.run()\n"; |
| } |
| }; |
| |
| # Create an Caller instance |
| |
| $caller = new Caller(); |
| |
| # Add a simple C++ callback (caller owns the callback, so |
| # we disown it first by clearing the .thisown flag). |
| |
| print "Adding and calling a normal C++ callback\n"; |
| print "----------------------------------------\n"; |
| |
| $callback = new Callback(); |
| $callback->thisown = 0; |
| $caller->setCallback($callback); |
| $caller->call(); |
| $caller->delCallback(); |
| |
| print "\n"; |
| print "Adding and calling a PHP callback\n"; |
| print "------------------------------------\n"; |
| |
| # Add a PHP callback. |
| |
| $callback = new PhpCallback(); |
| $callback->thisown = 0; |
| $caller->setCallback($callback); |
| $caller->call(); |
| $caller->delCallback(); |
| |
| # All done. |
| |
| print "php exit\n"; |
| |
| ?> |