return_value.phpt 1.7 KB

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