array_pad_variation3.phpt 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869
  1. --TEST--
  2. Test array_pad() function : usage variations - possible values for 'pad_value' 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. * Testing array_pad() function for expected behavior by passing
  11. * different possible values for $pad_value argument.
  12. * $input and $pad_size arguments take fixed value.
  13. */
  14. echo "*** Testing array_pad() : possible values for \$pad_value argument ***\n";
  15. // Initialise $input and $pad_size argument
  16. $input = array(1, 2);
  17. $pad_size = 4;
  18. //get an unset variable
  19. $unset_var = 10;
  20. unset ($unset_var);
  21. // get a class
  22. class classA
  23. {
  24. public function __toString() {
  25. return "Class A object";
  26. }
  27. }
  28. // heredoc string
  29. $heredoc = <<<EOT
  30. hello world
  31. EOT;
  32. // get a resource variable
  33. $fp = fopen(__FILE__, "r");
  34. // get a reference variable
  35. $value = "hello";
  36. $reference = &$value;
  37. // different values to be passed to $pad_value argument
  38. $pad_values = array(
  39. // int data
  40. /*1*/ 0,
  41. 1,
  42. 12345,
  43. -2345,
  44. // float data
  45. /*5*/ 10.5,
  46. -10.5,
  47. 12.3456789000e10,
  48. 12.3456789000E-10,
  49. .5,
  50. // array data
  51. /*10*/ array(),
  52. array(0),
  53. array(1),
  54. array(1, 2),
  55. array('color' => 'red', 'item' => 'pen'),
  56. // null data
  57. /*15*/ NULL,
  58. null,
  59. // boolean data
  60. /*17*/ true,
  61. false,
  62. TRUE,
  63. FALSE,
  64. // empty data
  65. /*21*/ "",
  66. '',
  67. // string data
  68. /*23*/ "string",
  69. 'string',
  70. $heredoc,
  71. // strings with different white spaces
  72. /*26*/ "\v\fHello\t world!! \rstring\n",
  73. '\v\fHello\t world!! \rstring\n',
  74. // object data
  75. /*28*/ new classA(),
  76. // undefined data
  77. /*29*/ @$undefined_var,
  78. // unset data
  79. /*30*/ @$unset_var,
  80. // resource variable
  81. /*31*/ $fp,
  82. // reference variable
  83. /*32*/ $reference
  84. );
  85. // loop through each element of $pad_values to check the behavior of array_pad()
  86. $iterator = 1;
  87. foreach($pad_values as $pad_value) {
  88. echo "-- Iteration $iterator --\n";
  89. var_dump( array_pad($input, $pad_size, $pad_value) ); // positive 'pad_size'
  90. var_dump( array_pad($input, -$pad_size, $pad_value) ); // negative 'pad_size'
  91. $iterator++;
  92. };
  93. echo "Done";
  94. ?>
  95. --EXPECTF--
  96. *** Testing array_pad() : possible values for $pad_value argument ***
  97. -- Iteration 1 --
  98. array(4) {
  99. [0]=>
  100. int(1)
  101. [1]=>
  102. int(2)
  103. [2]=>
  104. int(0)
  105. [3]=>
  106. int(0)
  107. }
  108. array(4) {
  109. [0]=>
  110. int(0)
  111. [1]=>
  112. int(0)
  113. [2]=>
  114. int(1)
  115. [3]=>
  116. int(2)
  117. }
  118. -- Iteration 2 --
  119. array(4) {
  120. [0]=>
  121. int(1)
  122. [1]=>
  123. int(2)
  124. [2]=>
  125. int(1)
  126. [3]=>
  127. int(1)
  128. }
  129. array(4) {
  130. [0]=>
  131. int(1)
  132. [1]=>
  133. int(1)
  134. [2]=>
  135. int(1)
  136. [3]=>
  137. int(2)
  138. }
  139. -- Iteration 3 --
  140. array(4) {
  141. [0]=>
  142. int(1)
  143. [1]=>
  144. int(2)
  145. [2]=>
  146. int(12345)
  147. [3]=>
  148. int(12345)
  149. }
  150. array(4) {
  151. [0]=>
  152. int(12345)
  153. [1]=>
  154. int(12345)
  155. [2]=>
  156. int(1)
  157. [3]=>
  158. int(2)
  159. }
  160. -- Iteration 4 --
  161. array(4) {
  162. [0]=>
  163. int(1)
  164. [1]=>
  165. int(2)
  166. [2]=>
  167. int(-2345)
  168. [3]=>
  169. int(-2345)
  170. }
  171. array(4) {
  172. [0]=>
  173. int(-2345)
  174. [1]=>
  175. int(-2345)
  176. [2]=>
  177. int(1)
  178. [3]=>
  179. int(2)
  180. }
  181. -- Iteration 5 --
  182. array(4) {
  183. [0]=>
  184. int(1)
  185. [1]=>
  186. int(2)
  187. [2]=>
  188. float(10.5)
  189. [3]=>
  190. float(10.5)
  191. }
  192. array(4) {
  193. [0]=>
  194. float(10.5)
  195. [1]=>
  196. float(10.5)
  197. [2]=>
  198. int(1)
  199. [3]=>
  200. int(2)
  201. }
  202. -- Iteration 6 --
  203. array(4) {
  204. [0]=>
  205. int(1)
  206. [1]=>
  207. int(2)
  208. [2]=>
  209. float(-10.5)
  210. [3]=>
  211. float(-10.5)
  212. }
  213. array(4) {
  214. [0]=>
  215. float(-10.5)
  216. [1]=>
  217. float(-10.5)
  218. [2]=>
  219. int(1)
  220. [3]=>
  221. int(2)
  222. }
  223. -- Iteration 7 --
  224. array(4) {
  225. [0]=>
  226. int(1)
  227. [1]=>
  228. int(2)
  229. [2]=>
  230. float(123456789000)
  231. [3]=>
  232. float(123456789000)
  233. }
  234. array(4) {
  235. [0]=>
  236. float(123456789000)
  237. [1]=>
  238. float(123456789000)
  239. [2]=>
  240. int(1)
  241. [3]=>
  242. int(2)
  243. }
  244. -- Iteration 8 --
  245. array(4) {
  246. [0]=>
  247. int(1)
  248. [1]=>
  249. int(2)
  250. [2]=>
  251. float(1.23456789E-9)
  252. [3]=>
  253. float(1.23456789E-9)
  254. }
  255. array(4) {
  256. [0]=>
  257. float(1.23456789E-9)
  258. [1]=>
  259. float(1.23456789E-9)
  260. [2]=>
  261. int(1)
  262. [3]=>
  263. int(2)
  264. }
  265. -- Iteration 9 --
  266. array(4) {
  267. [0]=>
  268. int(1)
  269. [1]=>
  270. int(2)
  271. [2]=>
  272. float(0.5)
  273. [3]=>
  274. float(0.5)
  275. }
  276. array(4) {
  277. [0]=>
  278. float(0.5)
  279. [1]=>
  280. float(0.5)
  281. [2]=>
  282. int(1)
  283. [3]=>
  284. int(2)
  285. }
  286. -- Iteration 10 --
  287. array(4) {
  288. [0]=>
  289. int(1)
  290. [1]=>
  291. int(2)
  292. [2]=>
  293. array(0) {
  294. }
  295. [3]=>
  296. array(0) {
  297. }
  298. }
  299. array(4) {
  300. [0]=>
  301. array(0) {
  302. }
  303. [1]=>
  304. array(0) {
  305. }
  306. [2]=>
  307. int(1)
  308. [3]=>
  309. int(2)
  310. }
  311. -- Iteration 11 --
  312. array(4) {
  313. [0]=>
  314. int(1)
  315. [1]=>
  316. int(2)
  317. [2]=>
  318. array(1) {
  319. [0]=>
  320. int(0)
  321. }
  322. [3]=>
  323. array(1) {
  324. [0]=>
  325. int(0)
  326. }
  327. }
  328. array(4) {
  329. [0]=>
  330. array(1) {
  331. [0]=>
  332. int(0)
  333. }
  334. [1]=>
  335. array(1) {
  336. [0]=>
  337. int(0)
  338. }
  339. [2]=>
  340. int(1)
  341. [3]=>
  342. int(2)
  343. }
  344. -- Iteration 12 --
  345. array(4) {
  346. [0]=>
  347. int(1)
  348. [1]=>
  349. int(2)
  350. [2]=>
  351. array(1) {
  352. [0]=>
  353. int(1)
  354. }
  355. [3]=>
  356. array(1) {
  357. [0]=>
  358. int(1)
  359. }
  360. }
  361. array(4) {
  362. [0]=>
  363. array(1) {
  364. [0]=>
  365. int(1)
  366. }
  367. [1]=>
  368. array(1) {
  369. [0]=>
  370. int(1)
  371. }
  372. [2]=>
  373. int(1)
  374. [3]=>
  375. int(2)
  376. }
  377. -- Iteration 13 --
  378. array(4) {
  379. [0]=>
  380. int(1)
  381. [1]=>
  382. int(2)
  383. [2]=>
  384. array(2) {
  385. [0]=>
  386. int(1)
  387. [1]=>
  388. int(2)
  389. }
  390. [3]=>
  391. array(2) {
  392. [0]=>
  393. int(1)
  394. [1]=>
  395. int(2)
  396. }
  397. }
  398. array(4) {
  399. [0]=>
  400. array(2) {
  401. [0]=>
  402. int(1)
  403. [1]=>
  404. int(2)
  405. }
  406. [1]=>
  407. array(2) {
  408. [0]=>
  409. int(1)
  410. [1]=>
  411. int(2)
  412. }
  413. [2]=>
  414. int(1)
  415. [3]=>
  416. int(2)
  417. }
  418. -- Iteration 14 --
  419. array(4) {
  420. [0]=>
  421. int(1)
  422. [1]=>
  423. int(2)
  424. [2]=>
  425. array(2) {
  426. ["color"]=>
  427. string(3) "red"
  428. ["item"]=>
  429. string(3) "pen"
  430. }
  431. [3]=>
  432. array(2) {
  433. ["color"]=>
  434. string(3) "red"
  435. ["item"]=>
  436. string(3) "pen"
  437. }
  438. }
  439. array(4) {
  440. [0]=>
  441. array(2) {
  442. ["color"]=>
  443. string(3) "red"
  444. ["item"]=>
  445. string(3) "pen"
  446. }
  447. [1]=>
  448. array(2) {
  449. ["color"]=>
  450. string(3) "red"
  451. ["item"]=>
  452. string(3) "pen"
  453. }
  454. [2]=>
  455. int(1)
  456. [3]=>
  457. int(2)
  458. }
  459. -- Iteration 15 --
  460. array(4) {
  461. [0]=>
  462. int(1)
  463. [1]=>
  464. int(2)
  465. [2]=>
  466. NULL
  467. [3]=>
  468. NULL
  469. }
  470. array(4) {
  471. [0]=>
  472. NULL
  473. [1]=>
  474. NULL
  475. [2]=>
  476. int(1)
  477. [3]=>
  478. int(2)
  479. }
  480. -- Iteration 16 --
  481. array(4) {
  482. [0]=>
  483. int(1)
  484. [1]=>
  485. int(2)
  486. [2]=>
  487. NULL
  488. [3]=>
  489. NULL
  490. }
  491. array(4) {
  492. [0]=>
  493. NULL
  494. [1]=>
  495. NULL
  496. [2]=>
  497. int(1)
  498. [3]=>
  499. int(2)
  500. }
  501. -- Iteration 17 --
  502. array(4) {
  503. [0]=>
  504. int(1)
  505. [1]=>
  506. int(2)
  507. [2]=>
  508. bool(true)
  509. [3]=>
  510. bool(true)
  511. }
  512. array(4) {
  513. [0]=>
  514. bool(true)
  515. [1]=>
  516. bool(true)
  517. [2]=>
  518. int(1)
  519. [3]=>
  520. int(2)
  521. }
  522. -- Iteration 18 --
  523. array(4) {
  524. [0]=>
  525. int(1)
  526. [1]=>
  527. int(2)
  528. [2]=>
  529. bool(false)
  530. [3]=>
  531. bool(false)
  532. }
  533. array(4) {
  534. [0]=>
  535. bool(false)
  536. [1]=>
  537. bool(false)
  538. [2]=>
  539. int(1)
  540. [3]=>
  541. int(2)
  542. }
  543. -- Iteration 19 --
  544. array(4) {
  545. [0]=>
  546. int(1)
  547. [1]=>
  548. int(2)
  549. [2]=>
  550. bool(true)
  551. [3]=>
  552. bool(true)
  553. }
  554. array(4) {
  555. [0]=>
  556. bool(true)
  557. [1]=>
  558. bool(true)
  559. [2]=>
  560. int(1)
  561. [3]=>
  562. int(2)
  563. }
  564. -- Iteration 20 --
  565. array(4) {
  566. [0]=>
  567. int(1)
  568. [1]=>
  569. int(2)
  570. [2]=>
  571. bool(false)
  572. [3]=>
  573. bool(false)
  574. }
  575. array(4) {
  576. [0]=>
  577. bool(false)
  578. [1]=>
  579. bool(false)
  580. [2]=>
  581. int(1)
  582. [3]=>
  583. int(2)
  584. }
  585. -- Iteration 21 --
  586. array(4) {
  587. [0]=>
  588. int(1)
  589. [1]=>
  590. int(2)
  591. [2]=>
  592. string(0) ""
  593. [3]=>
  594. string(0) ""
  595. }
  596. array(4) {
  597. [0]=>
  598. string(0) ""
  599. [1]=>
  600. string(0) ""
  601. [2]=>
  602. int(1)
  603. [3]=>
  604. int(2)
  605. }
  606. -- Iteration 22 --
  607. array(4) {
  608. [0]=>
  609. int(1)
  610. [1]=>
  611. int(2)
  612. [2]=>
  613. string(0) ""
  614. [3]=>
  615. string(0) ""
  616. }
  617. array(4) {
  618. [0]=>
  619. string(0) ""
  620. [1]=>
  621. string(0) ""
  622. [2]=>
  623. int(1)
  624. [3]=>
  625. int(2)
  626. }
  627. -- Iteration 23 --
  628. array(4) {
  629. [0]=>
  630. int(1)
  631. [1]=>
  632. int(2)
  633. [2]=>
  634. string(6) "string"
  635. [3]=>
  636. string(6) "string"
  637. }
  638. array(4) {
  639. [0]=>
  640. string(6) "string"
  641. [1]=>
  642. string(6) "string"
  643. [2]=>
  644. int(1)
  645. [3]=>
  646. int(2)
  647. }
  648. -- Iteration 24 --
  649. array(4) {
  650. [0]=>
  651. int(1)
  652. [1]=>
  653. int(2)
  654. [2]=>
  655. string(6) "string"
  656. [3]=>
  657. string(6) "string"
  658. }
  659. array(4) {
  660. [0]=>
  661. string(6) "string"
  662. [1]=>
  663. string(6) "string"
  664. [2]=>
  665. int(1)
  666. [3]=>
  667. int(2)
  668. }
  669. -- Iteration 25 --
  670. array(4) {
  671. [0]=>
  672. int(1)
  673. [1]=>
  674. int(2)
  675. [2]=>
  676. string(11) "hello world"
  677. [3]=>
  678. string(11) "hello world"
  679. }
  680. array(4) {
  681. [0]=>
  682. string(11) "hello world"
  683. [1]=>
  684. string(11) "hello world"
  685. [2]=>
  686. int(1)
  687. [3]=>
  688. int(2)
  689. }
  690. -- Iteration 26 --
  691. array(4) {
  692. [0]=>
  693. int(1)
  694. [1]=>
  695. int(2)
  696. [2]=>
  697. string(25) " Hello world!! string
  698. "
  699. [3]=>
  700. string(25) " Hello world!! string
  701. "
  702. }
  703. array(4) {
  704. [0]=>
  705. string(25) " Hello world!! string
  706. "
  707. [1]=>
  708. string(25) " Hello world!! string
  709. "
  710. [2]=>
  711. int(1)
  712. [3]=>
  713. int(2)
  714. }
  715. -- Iteration 27 --
  716. array(4) {
  717. [0]=>
  718. int(1)
  719. [1]=>
  720. int(2)
  721. [2]=>
  722. string(30) "\v\fHello\t world!! \rstring\n"
  723. [3]=>
  724. string(30) "\v\fHello\t world!! \rstring\n"
  725. }
  726. array(4) {
  727. [0]=>
  728. string(30) "\v\fHello\t world!! \rstring\n"
  729. [1]=>
  730. string(30) "\v\fHello\t world!! \rstring\n"
  731. [2]=>
  732. int(1)
  733. [3]=>
  734. int(2)
  735. }
  736. -- Iteration 28 --
  737. array(4) {
  738. [0]=>
  739. int(1)
  740. [1]=>
  741. int(2)
  742. [2]=>
  743. object(classA)#%d (0) {
  744. }
  745. [3]=>
  746. object(classA)#%d (0) {
  747. }
  748. }
  749. array(4) {
  750. [0]=>
  751. object(classA)#%d (0) {
  752. }
  753. [1]=>
  754. object(classA)#%d (0) {
  755. }
  756. [2]=>
  757. int(1)
  758. [3]=>
  759. int(2)
  760. }
  761. -- Iteration 29 --
  762. array(4) {
  763. [0]=>
  764. int(1)
  765. [1]=>
  766. int(2)
  767. [2]=>
  768. NULL
  769. [3]=>
  770. NULL
  771. }
  772. array(4) {
  773. [0]=>
  774. NULL
  775. [1]=>
  776. NULL
  777. [2]=>
  778. int(1)
  779. [3]=>
  780. int(2)
  781. }
  782. -- Iteration 30 --
  783. array(4) {
  784. [0]=>
  785. int(1)
  786. [1]=>
  787. int(2)
  788. [2]=>
  789. NULL
  790. [3]=>
  791. NULL
  792. }
  793. array(4) {
  794. [0]=>
  795. NULL
  796. [1]=>
  797. NULL
  798. [2]=>
  799. int(1)
  800. [3]=>
  801. int(2)
  802. }
  803. -- Iteration 31 --
  804. array(4) {
  805. [0]=>
  806. int(1)
  807. [1]=>
  808. int(2)
  809. [2]=>
  810. resource(%d) of type (stream)
  811. [3]=>
  812. resource(%d) of type (stream)
  813. }
  814. array(4) {
  815. [0]=>
  816. resource(%d) of type (stream)
  817. [1]=>
  818. resource(%d) of type (stream)
  819. [2]=>
  820. int(1)
  821. [3]=>
  822. int(2)
  823. }
  824. -- Iteration 32 --
  825. array(4) {
  826. [0]=>
  827. int(1)
  828. [1]=>
  829. int(2)
  830. [2]=>
  831. string(5) "hello"
  832. [3]=>
  833. string(5) "hello"
  834. }
  835. array(4) {
  836. [0]=>
  837. string(5) "hello"
  838. [1]=>
  839. string(5) "hello"
  840. [2]=>
  841. int(1)
  842. [3]=>
  843. int(2)
  844. }
  845. Done