variable_passing.phpt 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. --TEST--
  2. Test V8::executeString() : simple variables passed from PHP
  3. --SKIPIF--
  4. <?php require_once(dirname(__FILE__) . '/skipif.inc'); ?>
  5. --FILE--
  6. <?php
  7. $JS = <<< EOT
  8. function dump(a)
  9. {
  10. for (var i in a) {
  11. var val = a[i];
  12. print(i + ' => ' + val + "\\n");
  13. }
  14. }
  15. function test()
  16. {
  17. var a = 'From PHP: ' + PHP.somevar;
  18. PHP.somevar = 'changed in JS!'; // Should not change..
  19. dump(PHP.myarray);
  20. return a;
  21. }
  22. print(test() + "\\n");
  23. print(PHP.myinteger + "\\n");
  24. print(PHP.myfloat + "\\n");
  25. EOT;
  26. $a = new V8Js();
  27. $a->somevar = "From PHP with love!";
  28. $a->myinteger = 123;
  29. $a->myfloat = 3.14;
  30. $a->_SERVER = $_SERVER;
  31. $a->GLOBALS = $GLOBALS;
  32. $a->myarray = array(
  33. 'a' => 'value for key A',
  34. 'b' => 'value for key B',
  35. 'c' => 'value for key C',
  36. 'd' => 'value for key D',
  37. );
  38. $a->executeString($JS, "test.js");
  39. // Check that variable has not been modified
  40. var_dump($a->somevar);
  41. ?>
  42. ===EOF===
  43. --EXPECT--
  44. a => value for key A
  45. b => value for key B
  46. c => value for key C
  47. d => value for key D
  48. From PHP: From PHP with love!
  49. 123
  50. 3.14
  51. string(19) "From PHP with love!"
  52. ===EOF===