Fix PHP sync example

Mostly it was missing `%include <std_string.i>`
This commit is contained in:
Olly Betts 2021-04-19 11:26:32 +12:00
commit 09d06843d1
4 changed files with 19 additions and 19 deletions

View file

@ -12,8 +12,8 @@ void Sync::printer() {
}
void Sync::all_change() {
::s = "global change";
++::x;
this->s = "local change";
++this->x;
::s = "global change";
++::x;
this->s = "local change";
++this->x;
}

View file

@ -4,11 +4,11 @@ extern std::string s;
extern int x;
class Sync {
public:
int x;
std::string s;
void printer();
void all_change();
public:
int x;
std::string s;
void printer();
void all_change();
Sync() : x(0) { }
Sync() : x(0) { }
};

View file

@ -1,5 +1,7 @@
%module example
%include <std_string.i>
%{
#include "example.h"
%}

View file

@ -11,23 +11,21 @@ echo "PHP reading object: string is '", $o->s, "' and value is ", $o->x, "\n";
$o->printer();
// FIXME something is up with the setter
// type error - s_set("global string");
x_set(42);
example::s_set("global string");
example::x_set(42);
// FIXME something is up with the setter
// type error - $o->s = "object string";
$o->s = "object string";
$o->x = 1234;
echo "PHP reading globals: string is '", s_get(), "' and value is ", x_get(), "\n";
echo "PHP reading object: string is '", $o->s, "' and value is ", $s->x, "\n";
echo "PHP reading globals: string is '", example::s_get(), "' and int is ", example::x_get(), "\n";
echo "PHP reading object: string is '", $o->s, "' and int is ", $o->x, "\n";
$o->printer();
echo "Calling all_change() method\n";
$o->all_change();
echo "PHP reading globals: string is '", s_get(), "' and value is ", x_get(), "\n";
echo "PHP reading object: string is '", $o->s, "' and value is ", $o->x, "\n";
echo "PHP reading globals: string is '", example::s_get(), "' and int is ", example::x_get(), "\n";
echo "PHP reading object: string is '", $o->s, "' and int is ", $o->x, "\n";
$o->printer();