empty_str_offset.phpt 3.1 KB

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