return_value.phpt 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. --TEST--
  2. Test V8::executeString() : Return values
  3. --SKIPIF--
  4. <?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
  5. --FILE--
  6. <?php
  7. $JS = <<< EOT
  8. function test(passed)
  9. {
  10. return passed;
  11. }
  12. EOT;
  13. // Test class
  14. class Testing
  15. {
  16. public $foo = 'ORIGINAL';
  17. private $my_private = 'arf'; // Should not show in JS side
  18. protected $my_protected = 'argh'; // Should not show in JS side
  19. function mytest() { echo 'Here be monsters..', "\n"; }
  20. }
  21. $a = new V8Js();
  22. $a->myobj = new Testing();
  23. var_dump($a->executeString($JS, "test.js"));
  24. var_dump($a->executeString("test(PHP.myobj);", "test1.js"));
  25. var_dump($a->executeString("test(new Array(1,2,3));", "test2.js"));
  26. var_dump($a->executeString("test(new Array('foo', 'bar'));", "test3.js"));
  27. var_dump($a->executeString("test(new Array('foo', 'bar'));", "test3.js"));
  28. var_dump($a->executeString("test(new Date('September 8, 1975 09:00:00'));", "test4.js"));
  29. var_dump($a->executeString("test(1234567890);", "test5.js"));
  30. var_dump($a->executeString("test(123.456789);", "test6.js"));
  31. var_dump($a->executeString("test('some string');", "test7.js"));
  32. var_dump($a->executeString("test(true);", "test8.js"));
  33. var_dump($a->executeString("test(false);", "test9.js"));
  34. ?>
  35. ===EOF===
  36. --EXPECT--
  37. NULL
  38. object(V8Object)#3 (2) {
  39. ["mytest"]=>
  40. object(V8Function)#4 (0) {
  41. }
  42. ["foo"]=>
  43. string(8) "ORIGINAL"
  44. }
  45. array(3) {
  46. [0]=>
  47. int(1)
  48. [1]=>
  49. int(2)
  50. [2]=>
  51. int(3)
  52. }
  53. array(2) {
  54. [0]=>
  55. string(3) "foo"
  56. [1]=>
  57. string(3) "bar"
  58. }
  59. array(2) {
  60. [0]=>
  61. string(3) "foo"
  62. [1]=>
  63. string(3) "bar"
  64. }
  65. object(DateTime)#3 (3) {
  66. ["date"]=>
  67. string(19) "1975-09-08 09:00:00"
  68. ["timezone_type"]=>
  69. int(1)
  70. ["timezone"]=>
  71. string(6) "+02:00"
  72. }
  73. int(1234567890)
  74. float(123.456789)
  75. string(11) "some string"
  76. bool(true)
  77. bool(false)
  78. ===EOF===