array_pad_variation6.phpt 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668
  1. --TEST--
  2. Test array_pad() function : usage variations - different arrays for 'input' argument
  3. --FILE--
  4. <?php
  5. /* Prototype : array array_pad(array $input, int $pad_size, mixed $pad_value)
  6. * Description: Returns a copy of input array padded with pad_value to size pad_size
  7. * Source code: ext/standard/array.c
  8. */
  9. /*
  10. * Passing different arrays to $input argument and testing whether
  11. * array_pad() behaves in an expected way with the other arguments passed to the function.
  12. * The $pad_size and $pad_value arguments passed are fixed values.
  13. */
  14. echo "*** Testing array_pad() : Passing different arrays to \$input argument ***\n";
  15. /* Different heredoc strings */
  16. // heredoc with blank line
  17. $blank_line = <<<EOT
  18. EOT;
  19. // heredoc with multiline string
  20. $multiline_string = <<<EOT
  21. hello world
  22. The big brown fox jumped over;
  23. the lazy dog
  24. This is a double quoted string
  25. EOT;
  26. // heredoc with different whitespaces
  27. $diff_whitespaces = <<<EOT
  28. hello\r world\t
  29. 1111\t\t != 2222\v\v
  30. heredoc\ndouble quoted string. with\vdifferent\fwhite\vspaces
  31. EOT;
  32. // heredoc with quoted strings and numeric values
  33. $numeric_string = <<<EOT
  34. 11 < 12. 123 >22
  35. 'single quoted string'
  36. "double quoted string"
  37. 2222 != 1111.\t 0000 = 0000\n
  38. EOT;
  39. // different arrays to be passed to $input argument
  40. $inputs = array (
  41. /*1*/ array(1, 2), // with default keys and numeric values
  42. array(1.1, 2.2), // with default keys & float values
  43. array(false,true), // with default keys and boolean values
  44. array(), // empty array
  45. /*5*/ array(NULL), // with NULL
  46. array("a\v\f", "aaaa\r", "b\tbbb", "\[\]\!\@\#\$\%\^\&\*\(\)\{\}"), // with double quoted strings
  47. array('a\v\f', 'aaaa\r', 'b\tbbb', '\[\]\!\@\#\$\%\^\&\*\(\)\{\}'), // with single quoted strings
  48. array("h1" => $blank_line, "h2" => $multiline_string, "h3" => $diff_whitespaces, $numeric_string), // with heredocs
  49. // associative arrays
  50. /*9*/ array(1 => "one", 2 => "two", 3 => "three"), // explicit numeric keys, string values
  51. array("one" => 1, "two" => 2, "three" => 3 ), // string keys & numeric values
  52. array( 1 => 10, 2 => 20, 4 => 40, 3 => 30), // explicit numeric keys and numeric values
  53. array( "one" => "ten", "two" => "twenty", "three" => "thirty"), // string key/value
  54. array("one" => 1, 2 => "two", 4 => "four"), //mixed
  55. // associative array, containing null/empty/boolean values as key/value
  56. /*14*/ array(NULL => "NULL", null => "null", "NULL" => NULL, "null" => null),
  57. array(true => "true", false => "false", "false" => false, "true" => true),
  58. array("" => "emptyd", '' => 'emptys', "emptyd" => "", 'emptys' => ''),
  59. array(1 => '', 2 => "", 3 => NULL, 4 => null, 5 => false, 6 => true),
  60. array('' => 1, "" => 2, NULL => 3, null => 4, false => 5, true => 6),
  61. // array with repetative keys
  62. /*19*/ array("One" => 1, "two" => 2, "One" => 10, "two" => 20, "three" => 3)
  63. );
  64. // initialize the $pad_size and $pad_value arguments
  65. $pad_size = 6;
  66. $pad_value = "HELLO";
  67. // loop through each sub-array within $inputs to check the behavior of array_pad()
  68. $iterator = 1;
  69. foreach($inputs as $input) {
  70. echo "-- Iteration $iterator --\n";
  71. var_dump( array_pad($input, $pad_size, $pad_value) ); // positive 'pad_size'
  72. var_dump( array_pad($input, -$pad_size, $pad_value) ); // negative 'pad_size'
  73. $iterator++;
  74. };
  75. echo "Done";
  76. ?>
  77. --EXPECTF--
  78. *** Testing array_pad() : Passing different arrays to $input argument ***
  79. -- Iteration 1 --
  80. array(6) {
  81. [0]=>
  82. int(1)
  83. [1]=>
  84. int(2)
  85. [2]=>
  86. string(5) "HELLO"
  87. [3]=>
  88. string(5) "HELLO"
  89. [4]=>
  90. string(5) "HELLO"
  91. [5]=>
  92. string(5) "HELLO"
  93. }
  94. array(6) {
  95. [0]=>
  96. string(5) "HELLO"
  97. [1]=>
  98. string(5) "HELLO"
  99. [2]=>
  100. string(5) "HELLO"
  101. [3]=>
  102. string(5) "HELLO"
  103. [4]=>
  104. int(1)
  105. [5]=>
  106. int(2)
  107. }
  108. -- Iteration 2 --
  109. array(6) {
  110. [0]=>
  111. float(1.1)
  112. [1]=>
  113. float(2.2)
  114. [2]=>
  115. string(5) "HELLO"
  116. [3]=>
  117. string(5) "HELLO"
  118. [4]=>
  119. string(5) "HELLO"
  120. [5]=>
  121. string(5) "HELLO"
  122. }
  123. array(6) {
  124. [0]=>
  125. string(5) "HELLO"
  126. [1]=>
  127. string(5) "HELLO"
  128. [2]=>
  129. string(5) "HELLO"
  130. [3]=>
  131. string(5) "HELLO"
  132. [4]=>
  133. float(1.1)
  134. [5]=>
  135. float(2.2)
  136. }
  137. -- Iteration 3 --
  138. array(6) {
  139. [0]=>
  140. bool(false)
  141. [1]=>
  142. bool(true)
  143. [2]=>
  144. string(5) "HELLO"
  145. [3]=>
  146. string(5) "HELLO"
  147. [4]=>
  148. string(5) "HELLO"
  149. [5]=>
  150. string(5) "HELLO"
  151. }
  152. array(6) {
  153. [0]=>
  154. string(5) "HELLO"
  155. [1]=>
  156. string(5) "HELLO"
  157. [2]=>
  158. string(5) "HELLO"
  159. [3]=>
  160. string(5) "HELLO"
  161. [4]=>
  162. bool(false)
  163. [5]=>
  164. bool(true)
  165. }
  166. -- Iteration 4 --
  167. array(6) {
  168. [0]=>
  169. string(5) "HELLO"
  170. [1]=>
  171. string(5) "HELLO"
  172. [2]=>
  173. string(5) "HELLO"
  174. [3]=>
  175. string(5) "HELLO"
  176. [4]=>
  177. string(5) "HELLO"
  178. [5]=>
  179. string(5) "HELLO"
  180. }
  181. array(6) {
  182. [0]=>
  183. string(5) "HELLO"
  184. [1]=>
  185. string(5) "HELLO"
  186. [2]=>
  187. string(5) "HELLO"
  188. [3]=>
  189. string(5) "HELLO"
  190. [4]=>
  191. string(5) "HELLO"
  192. [5]=>
  193. string(5) "HELLO"
  194. }
  195. -- Iteration 5 --
  196. array(6) {
  197. [0]=>
  198. NULL
  199. [1]=>
  200. string(5) "HELLO"
  201. [2]=>
  202. string(5) "HELLO"
  203. [3]=>
  204. string(5) "HELLO"
  205. [4]=>
  206. string(5) "HELLO"
  207. [5]=>
  208. string(5) "HELLO"
  209. }
  210. array(6) {
  211. [0]=>
  212. string(5) "HELLO"
  213. [1]=>
  214. string(5) "HELLO"
  215. [2]=>
  216. string(5) "HELLO"
  217. [3]=>
  218. string(5) "HELLO"
  219. [4]=>
  220. string(5) "HELLO"
  221. [5]=>
  222. NULL
  223. }
  224. -- Iteration 6 --
  225. array(6) {
  226. [0]=>
  227. string(3) "a "
  228. [1]=>
  229. string(5) "aaaa "
  230. [2]=>
  231. string(5) "b bbb"
  232. [3]=>
  233. string(27) "\[\]\!\@\#$\%\^\&\*\(\)\{\}"
  234. [4]=>
  235. string(5) "HELLO"
  236. [5]=>
  237. string(5) "HELLO"
  238. }
  239. array(6) {
  240. [0]=>
  241. string(5) "HELLO"
  242. [1]=>
  243. string(5) "HELLO"
  244. [2]=>
  245. string(3) "a "
  246. [3]=>
  247. string(5) "aaaa "
  248. [4]=>
  249. string(5) "b bbb"
  250. [5]=>
  251. string(27) "\[\]\!\@\#$\%\^\&\*\(\)\{\}"
  252. }
  253. -- Iteration 7 --
  254. array(6) {
  255. [0]=>
  256. string(5) "a\v\f"
  257. [1]=>
  258. string(6) "aaaa\r"
  259. [2]=>
  260. string(6) "b\tbbb"
  261. [3]=>
  262. string(28) "\[\]\!\@\#\$\%\^\&\*\(\)\{\}"
  263. [4]=>
  264. string(5) "HELLO"
  265. [5]=>
  266. string(5) "HELLO"
  267. }
  268. array(6) {
  269. [0]=>
  270. string(5) "HELLO"
  271. [1]=>
  272. string(5) "HELLO"
  273. [2]=>
  274. string(5) "a\v\f"
  275. [3]=>
  276. string(6) "aaaa\r"
  277. [4]=>
  278. string(6) "b\tbbb"
  279. [5]=>
  280. string(28) "\[\]\!\@\#\$\%\^\&\*\(\)\{\}"
  281. }
  282. -- Iteration 8 --
  283. array(6) {
  284. ["h1"]=>
  285. string(1) "
  286. "
  287. ["h2"]=>
  288. string(86) "hello world
  289. The big brown fox jumped over;
  290. the lazy dog
  291. This is a double quoted string"
  292. ["h3"]=>
  293. string(88) "hello world
  294. 1111 != 2222
  295. heredoc
  296. double quoted string. with different white spaces"
  297. [0]=>
  298. string(90) "11 < 12. 123 >22
  299. 'single quoted string'
  300. "double quoted string"
  301. 2222 != 1111. 0000 = 0000
  302. "
  303. [1]=>
  304. string(5) "HELLO"
  305. [2]=>
  306. string(5) "HELLO"
  307. }
  308. array(6) {
  309. [0]=>
  310. string(5) "HELLO"
  311. [1]=>
  312. string(5) "HELLO"
  313. ["h1"]=>
  314. string(1) "
  315. "
  316. ["h2"]=>
  317. string(86) "hello world
  318. The big brown fox jumped over;
  319. the lazy dog
  320. This is a double quoted string"
  321. ["h3"]=>
  322. string(88) "hello world
  323. 1111 != 2222
  324. heredoc
  325. double quoted string. with different white spaces"
  326. [2]=>
  327. string(90) "11 < 12. 123 >22
  328. 'single quoted string'
  329. "double quoted string"
  330. 2222 != 1111. 0000 = 0000
  331. "
  332. }
  333. -- Iteration 9 --
  334. array(6) {
  335. [0]=>
  336. string(3) "one"
  337. [1]=>
  338. string(3) "two"
  339. [2]=>
  340. string(5) "three"
  341. [3]=>
  342. string(5) "HELLO"
  343. [4]=>
  344. string(5) "HELLO"
  345. [5]=>
  346. string(5) "HELLO"
  347. }
  348. array(6) {
  349. [0]=>
  350. string(5) "HELLO"
  351. [1]=>
  352. string(5) "HELLO"
  353. [2]=>
  354. string(5) "HELLO"
  355. [3]=>
  356. string(3) "one"
  357. [4]=>
  358. string(3) "two"
  359. [5]=>
  360. string(5) "three"
  361. }
  362. -- Iteration 10 --
  363. array(6) {
  364. ["one"]=>
  365. int(1)
  366. ["two"]=>
  367. int(2)
  368. ["three"]=>
  369. int(3)
  370. [0]=>
  371. string(5) "HELLO"
  372. [1]=>
  373. string(5) "HELLO"
  374. [2]=>
  375. string(5) "HELLO"
  376. }
  377. array(6) {
  378. [0]=>
  379. string(5) "HELLO"
  380. [1]=>
  381. string(5) "HELLO"
  382. [2]=>
  383. string(5) "HELLO"
  384. ["one"]=>
  385. int(1)
  386. ["two"]=>
  387. int(2)
  388. ["three"]=>
  389. int(3)
  390. }
  391. -- Iteration 11 --
  392. array(6) {
  393. [0]=>
  394. int(10)
  395. [1]=>
  396. int(20)
  397. [2]=>
  398. int(40)
  399. [3]=>
  400. int(30)
  401. [4]=>
  402. string(5) "HELLO"
  403. [5]=>
  404. string(5) "HELLO"
  405. }
  406. array(6) {
  407. [0]=>
  408. string(5) "HELLO"
  409. [1]=>
  410. string(5) "HELLO"
  411. [2]=>
  412. int(10)
  413. [3]=>
  414. int(20)
  415. [4]=>
  416. int(40)
  417. [5]=>
  418. int(30)
  419. }
  420. -- Iteration 12 --
  421. array(6) {
  422. ["one"]=>
  423. string(3) "ten"
  424. ["two"]=>
  425. string(6) "twenty"
  426. ["three"]=>
  427. string(6) "thirty"
  428. [0]=>
  429. string(5) "HELLO"
  430. [1]=>
  431. string(5) "HELLO"
  432. [2]=>
  433. string(5) "HELLO"
  434. }
  435. array(6) {
  436. [0]=>
  437. string(5) "HELLO"
  438. [1]=>
  439. string(5) "HELLO"
  440. [2]=>
  441. string(5) "HELLO"
  442. ["one"]=>
  443. string(3) "ten"
  444. ["two"]=>
  445. string(6) "twenty"
  446. ["three"]=>
  447. string(6) "thirty"
  448. }
  449. -- Iteration 13 --
  450. array(6) {
  451. ["one"]=>
  452. int(1)
  453. [0]=>
  454. string(3) "two"
  455. [1]=>
  456. string(4) "four"
  457. [2]=>
  458. string(5) "HELLO"
  459. [3]=>
  460. string(5) "HELLO"
  461. [4]=>
  462. string(5) "HELLO"
  463. }
  464. array(6) {
  465. [0]=>
  466. string(5) "HELLO"
  467. [1]=>
  468. string(5) "HELLO"
  469. [2]=>
  470. string(5) "HELLO"
  471. ["one"]=>
  472. int(1)
  473. [3]=>
  474. string(3) "two"
  475. [4]=>
  476. string(4) "four"
  477. }
  478. -- Iteration 14 --
  479. array(6) {
  480. [""]=>
  481. string(4) "null"
  482. ["NULL"]=>
  483. NULL
  484. ["null"]=>
  485. NULL
  486. [0]=>
  487. string(5) "HELLO"
  488. [1]=>
  489. string(5) "HELLO"
  490. [2]=>
  491. string(5) "HELLO"
  492. }
  493. array(6) {
  494. [0]=>
  495. string(5) "HELLO"
  496. [1]=>
  497. string(5) "HELLO"
  498. [2]=>
  499. string(5) "HELLO"
  500. [""]=>
  501. string(4) "null"
  502. ["NULL"]=>
  503. NULL
  504. ["null"]=>
  505. NULL
  506. }
  507. -- Iteration 15 --
  508. array(6) {
  509. [0]=>
  510. string(4) "true"
  511. [1]=>
  512. string(5) "false"
  513. ["false"]=>
  514. bool(false)
  515. ["true"]=>
  516. bool(true)
  517. [2]=>
  518. string(5) "HELLO"
  519. [3]=>
  520. string(5) "HELLO"
  521. }
  522. array(6) {
  523. [0]=>
  524. string(5) "HELLO"
  525. [1]=>
  526. string(5) "HELLO"
  527. [2]=>
  528. string(4) "true"
  529. [3]=>
  530. string(5) "false"
  531. ["false"]=>
  532. bool(false)
  533. ["true"]=>
  534. bool(true)
  535. }
  536. -- Iteration 16 --
  537. array(6) {
  538. [""]=>
  539. string(6) "emptys"
  540. ["emptyd"]=>
  541. string(0) ""
  542. ["emptys"]=>
  543. string(0) ""
  544. [0]=>
  545. string(5) "HELLO"
  546. [1]=>
  547. string(5) "HELLO"
  548. [2]=>
  549. string(5) "HELLO"
  550. }
  551. array(6) {
  552. [0]=>
  553. string(5) "HELLO"
  554. [1]=>
  555. string(5) "HELLO"
  556. [2]=>
  557. string(5) "HELLO"
  558. [""]=>
  559. string(6) "emptys"
  560. ["emptyd"]=>
  561. string(0) ""
  562. ["emptys"]=>
  563. string(0) ""
  564. }
  565. -- Iteration 17 --
  566. array(6) {
  567. [1]=>
  568. string(0) ""
  569. [2]=>
  570. string(0) ""
  571. [3]=>
  572. NULL
  573. [4]=>
  574. NULL
  575. [5]=>
  576. bool(false)
  577. [6]=>
  578. bool(true)
  579. }
  580. array(6) {
  581. [1]=>
  582. string(0) ""
  583. [2]=>
  584. string(0) ""
  585. [3]=>
  586. NULL
  587. [4]=>
  588. NULL
  589. [5]=>
  590. bool(false)
  591. [6]=>
  592. bool(true)
  593. }
  594. -- Iteration 18 --
  595. array(6) {
  596. [""]=>
  597. int(4)
  598. [0]=>
  599. int(5)
  600. [1]=>
  601. int(6)
  602. [2]=>
  603. string(5) "HELLO"
  604. [3]=>
  605. string(5) "HELLO"
  606. [4]=>
  607. string(5) "HELLO"
  608. }
  609. array(6) {
  610. [0]=>
  611. string(5) "HELLO"
  612. [1]=>
  613. string(5) "HELLO"
  614. [2]=>
  615. string(5) "HELLO"
  616. [""]=>
  617. int(4)
  618. [3]=>
  619. int(5)
  620. [4]=>
  621. int(6)
  622. }
  623. -- Iteration 19 --
  624. array(6) {
  625. ["One"]=>
  626. int(10)
  627. ["two"]=>
  628. int(20)
  629. ["three"]=>
  630. int(3)
  631. [0]=>
  632. string(5) "HELLO"
  633. [1]=>
  634. string(5) "HELLO"
  635. [2]=>
  636. string(5) "HELLO"
  637. }
  638. array(6) {
  639. [0]=>
  640. string(5) "HELLO"
  641. [1]=>
  642. string(5) "HELLO"
  643. [2]=>
  644. string(5) "HELLO"
  645. ["One"]=>
  646. int(10)
  647. ["two"]=>
  648. int(20)
  649. ["three"]=>
  650. int(3)
  651. }
  652. Done