Exemple #1
0
<?php

require "tests.php";
require "argout.php";
check::functions(array(incp, incr, inctr, new_intp, copy_intp, delete_intp, intp_assign, intp_value, voidhandle, handle));
$ip = copy_intp(42);
check::equal(42, incp($ip), "42==incp({$ip})");
check::equal(43, intp_value($ip), "43={$ip}");
$p = copy_intp(2);
check::equal(2, incp($p), "2==incp({$p})");
check::equal(3, intp_value($p), "3=={$p}");
$r = copy_intp(7);
check::equal(7, incr($r), "7==incr({$r})");
check::equal(8, intp_value($r), "8=={$r}");
$tr = copy_intp(4);
check::equal(4, inctr($tr), "4==incr({$tr})");
check::equal(5, intp_value($tr), "5=={$tr}");
# Check the voidhandle call, first with null
unset($handle);
# FIXME: Call-time pass-by-reference has been deprecated for ages, and was
# removed in PHP 5.4.  We need to rework
#voidhandle(&$handle);
#check::resource($handle,"_p_void",'$handle is not _p_void');
#$handledata=handle($handle);
#check::equal($handledata,"Here it is","\$handledata != \"Here it is\"");
unset($handle);
voidhandle($handle);
check::isnull($handle, '$handle not null');
check::done();
Exemple #2
0
require "example.php";
# First create some objects using the pointer library.
print "Testing the pointer library\n";
$a = new_intp();
$b = new_intp();
$c = new_intp();
intp_assign($a, 37);
intp_assign($b, 42);
print "\ta = {$a}\n";
print "\tb = {$b}\n";
print "\tc = {$c}\n";
# Call the add() function wuth some pointers
add($a, $b, $c);
# Now get the result
$r = intp_value($c);
print "\t38 + 42 = {$r}\n";
# Clean up the pointers
delete_intp($a);
delete_intp($b);
delete_intp($c);
# Now try the typemap library
# This should be much easier. Now how it is no longer
# necessary to manufacture pointers.
print "Trying the typemap library\n";
$r = sub(37, 42);
print "\t37 - 42 = {$r}\n";
# Now try the version with multiple return values
# print "Testing multiple return values\n";
# ($q,$r) = divide(42,37);
# print "	42/37 = $q remainder $r\n";