isset_str_offset.phpt 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. --TEST--
  2. Testing isset with string offsets
  3. --FILE--
  4. <?php
  5. print "- isset ---\n";
  6. $str = "test0123";
  7. var_dump(isset($str[-1]));
  8. var_dump(isset($str[-10]));
  9. var_dump(isset($str[0]));
  10. var_dump(isset($str[1]));
  11. var_dump(isset($str[4])); // 0
  12. var_dump(isset($str[5])); // 1
  13. var_dump(isset($str[8]));
  14. var_dump(isset($str[10000]));
  15. // non-numeric offsets
  16. print "- string literal ---\n";
  17. var_dump(isset($str['-1'])); // 3
  18. var_dump(isset($str['-10']));
  19. var_dump(isset($str['0']));
  20. var_dump(isset($str['1']));
  21. var_dump(isset($str['4'])); // 0
  22. var_dump(isset($str['1.5']));
  23. var_dump(isset($str['good']));
  24. var_dump(isset($str['3 and a half']));
  25. print "- string variable ---\n";
  26. var_dump(isset($str[$key = '-1'])); // 3
  27. var_dump(isset($str[$key = '-10']));
  28. var_dump(isset($str[$key = '0']));
  29. var_dump(isset($str[$key = '1']));
  30. var_dump(isset($str[$key = '4'])); // 0
  31. var_dump(isset($str[$key = '1.5']));
  32. var_dump(isset($str[$key = 'good']));
  33. var_dump(isset($str[$key = '3 and a half']));
  34. print "- bool ---\n";
  35. var_dump(isset($str[true]));
  36. var_dump(isset($str[false]));
  37. var_dump(isset($str[false][true]));
  38. print "- null ---\n";
  39. var_dump(isset($str[null]));
  40. print "- double ---\n";
  41. var_dump(isset($str[-1.1]));
  42. var_dump(isset($str[-10.5]));
  43. var_dump(isset($str[-0.8]));
  44. var_dump(isset($str[-0.1]));
  45. var_dump(isset($str[0.2]));
  46. var_dump(isset($str[0.9]));
  47. var_dump(isset($str[M_PI]));
  48. var_dump(isset($str[100.5001]));
  49. print "- array ---\n";
  50. var_dump(isset($str[array()]));
  51. var_dump(isset($str[array(1,2,3)]));
  52. print "- object ---\n";
  53. var_dump(isset($str[new stdClass()]));
  54. print "- resource ---\n";
  55. $f = fopen(__FILE__, 'r');
  56. var_dump(isset($str[$f]));
  57. print "done\n";
  58. ?>
  59. --EXPECTF--
  60. - isset ---
  61. bool(true)
  62. bool(false)
  63. bool(true)
  64. bool(true)
  65. bool(true)
  66. bool(true)
  67. bool(false)
  68. bool(false)
  69. - string literal ---
  70. bool(true)
  71. bool(false)
  72. bool(true)
  73. bool(true)
  74. bool(true)
  75. bool(false)
  76. bool(false)
  77. bool(false)
  78. - string variable ---
  79. bool(true)
  80. bool(false)
  81. bool(true)
  82. bool(true)
  83. bool(true)
  84. bool(false)
  85. bool(false)
  86. bool(false)
  87. - bool ---
  88. bool(true)
  89. bool(true)
  90. bool(false)
  91. - null ---
  92. bool(true)
  93. - double ---
  94. Deprecated: Implicit conversion from float -1.1 to int loses precision in %s on line %d
  95. bool(true)
  96. Deprecated: Implicit conversion from float -10.5 to int loses precision in %s on line %d
  97. bool(false)
  98. Deprecated: Implicit conversion from float -0.8 to int loses precision in %s on line %d
  99. bool(true)
  100. Deprecated: Implicit conversion from float -0.1 to int loses precision in %s on line %d
  101. bool(true)
  102. Deprecated: Implicit conversion from float 0.2 to int loses precision in %s on line %d
  103. bool(true)
  104. Deprecated: Implicit conversion from float 0.9 to int loses precision in %s on line %d
  105. bool(true)
  106. Deprecated: Implicit conversion from float 3.141592653589793 to int loses precision in %s on line %d
  107. bool(true)
  108. Deprecated: Implicit conversion from float 100.5001 to int loses precision in %s on line %d
  109. bool(false)
  110. - array ---
  111. bool(false)
  112. bool(false)
  113. - object ---
  114. bool(false)
  115. - resource ---
  116. bool(false)
  117. done