/hphp/test/zend/good/ext/standard/tests/array/array_unique_variation1.php
PHP | 93 lines | 50 code | 19 blank | 24 comment | 0 complexity | bf301b45b69b50f8a7dff0a35e0fe470 MD5 | raw file
Possible License(s): LGPL-2.1, BSD-2-Clause, BSD-3-Clause, MPL-2.0-no-copyleft-exception, MIT, LGPL-2.0, Apache-2.0
- <?hh
- /* Prototype : array array_unique(array $input)
- * Description: Removes duplicate values from array
- * Source code: ext/standard/array.c
- */
- /*
- * Passing non array values to 'input' argument of array_unique() and see
- * that the function outputs proper warning messages wherever expected.
- */
- // get a class
- class classA
- {
- public function __toString() {
- return "Class A object";
- }
- }
- <<__EntryPoint>> function main(): void {
- echo "*** Testing array_unique() : Passing non array values to \$input argument ***\n";
- //get an unset variable
- $unset_var = 10;
- unset($unset_var);
- // heredoc string
- $heredoc = <<<EOT
- hello world
- EOT;
- // get a resource variable
- $fp = fopen(__FILE__, "r");
- // unexpected values to be passed to $input argument
- $inputs = varray [
- // int data
- /*1*/ 0,
- 1,
- 12345,
- -2345,
- // float data
- /*5*/ 10.5,
- -10.5,
- 12.3456789000e10,
- 12.3456789000E-10,
- .5,
- // null data
- /*10*/ NULL,
- null,
- // boolean data
- /*12*/ true,
- false,
- TRUE,
- FALSE,
- // empty data
- /*16*/ "",
- '',
- // string data
- /*18*/ "string",
- 'string',
- $heredoc,
- // object data
- /*21*/ new classA(),
- // undefined data
- /*22*/ @$undefined_var,
- // unset data
- /*23*/ @$unset_var,
- // resource variable
- /*24*/ $fp
- ];
- // loop through each element of $inputs and check the behavior of array_unique()
- $iterator = 1;
- foreach($inputs as $input) {
- echo "-- Iteration $iterator --\n";
- var_dump( array_unique($input) );
- $iterator++;
- }
- fclose($fp);
- echo "Done";
- }