Annotation of embedaddon/php/ext/standard/tests/strings/ucfirst.phpt, revision 1.1.1.2

1.1       misho       1: --TEST--
                      2: "ucfirst()" function
                      3: --INI--
                      4: precision=14
                      5: --FILE--
                      6: <?php
                      7: /* Make a string's first character uppercase */
                      8: 
                      9: echo "#### Basic and Various operations ####\n";
                     10: $str_array = array(
                     11:                    "testing ucfirst.",
                     12:                    "1.testing ucfirst",
                     13:                    "hELLO wORLD",
                     14:                    'hELLO wORLD',
                     15:                     "\0",              // Null 
                     16:                     "\x00",            // Hex Null
                     17:                     "\x000",
                     18:                     "abcd",            // double quoted string
                     19:                     'xyz',             // single quoted string
                     20:                     string,            // without quotes
                     21:                     "-3",
                     22:                     -3,
                     23:                     '-3.344',
                     24:                     -3.344,
                     25:                     NULL,
                     26:                     "NULL",
                     27:                     "0",
                     28:                     0,
                     29:                     TRUE,              // bool type
                     30:                     "TRUE",
                     31:                     "1",
                     32:                     1,
                     33:                     1.234444,
                     34:                     FALSE,
                     35:                     "FALSE",
                     36:                     " ",
                     37:                     "     ",
                     38:                     'b',               // single char
                     39:                     '\t',              // escape sequences
                     40:                     "\t",
                     41:                     "12",
                     42:                     "12twelve",                // int + string
                     43:                  );
                     44: /* loop to test working of ucfirst with different values */
                     45: foreach ($str_array as $string) {
                     46:   var_dump( ucfirst($string) );
                     47: }
                     48: 
                     49: 
                     50: 
                     51: echo "\n#### Testing Miscelleneous inputs ####\n";
                     52: 
                     53: echo "--- Testing arrays ---";
                     54: $str_arr = array("hello", "?world", "!$%**()%**[][[[&@#~!", array());
                     55: var_dump( ucfirst($str_arr) );  
                     56: 
                     57: echo "\n--- Testing objects ---\n";
                     58: /* we get "Catchable fatal error: saying Object of class could not be converted
                     59:         to string" by default when an object is passed instead of string:
1.1.1.2 ! misho      60: The error can be  avoided by choosing the __toString magix method as follows: */
1.1       misho      61: 
                     62: class string {
                     63:   function __toString() {
                     64:     return "hello, world";
                     65:   }
                     66: }
                     67: $obj_string = new string;
                     68: 
                     69: var_dump(ucfirst("$obj_string"));
                     70: 
                     71: 
                     72: echo "\n--- Testing Resources ---\n";
                     73: $filename1 = "dummy.txt";
                     74: $file1 = fopen($filename1, "w");                // creating new file
                     75: 
                     76: /* getting resource type for file handle */
                     77: $string1 = get_resource_type($file1);
                     78: $string2 = (int)get_resource_type($file1);      // converting stream type to int
                     79: 
                     80: /* $string1 is of "stream" type */
                     81: var_dump(ucfirst($string1)); 
                     82: 
                     83: /* $string2 holds a value of "int(0)" */
                     84: var_dump(ucfirst($string2));
                     85: 
                     86: fclose($file1);                                 // closing the file "dummy.txt"
                     87: unlink("$filename1");                           // deletes "dummy.txt"
                     88: 
                     89: 
                     90: echo "\n--- Testing a longer and heredoc string ---\n";
                     91: $string = <<<EOD
                     92: abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789
                     93: abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789
                     94: abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789
                     95: abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789
                     96: abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789
                     97: abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789
                     98: abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789
                     99: @#$%^&**&^%$#@!~:())))((((&&&**%$###@@@!!!~~~~@###$%^&*
                    100: abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789
                    101: EOD;
                    102: var_dump(ucfirst($string));
                    103: 
                    104: echo "\n--- Testing a heredoc null string ---\n";
                    105: $str = <<<EOD
                    106: EOD;
                    107: var_dump(ucfirst($str));
                    108: 
                    109: 
                    110: echo "\n--- Testing simple and complex syntax strings ---\n";
                    111: $str = 'world';
                    112: 
                    113: /* Simple syntax */
                    114: var_dump(ucfirst("$str"));
                    115: var_dump(ucfirst("$str'S"));
                    116: var_dump(ucfirst("$strS"));
                    117: 
                    118: /* String with curly braces, complex syntax */
                    119: var_dump(ucfirst("${str}S"));
                    120: var_dump(ucfirst("{$str}S"));
                    121: 
                    122: echo "\n--- Nested ucfirst() ---\n";
                    123: var_dump(ucfirst(ucfirst("hello")));
                    124: 
                    125: 
                    126: echo "\n#### error conditions ####";
                    127: /* Zero arguments */
                    128: ucfirst();
                    129: /* More than expected no. of args */
                    130: ucfirst($str_array[0], $str_array[1]);
                    131: ucfirst((int)10, (int)20);
                    132: 
                    133: echo "Done\n";
                    134: ?>
                    135: --EXPECTF--
                    136: #### Basic and Various operations ####
                    137: 
                    138: Notice: Use of undefined constant string - assumed 'string' in %s on line %d
                    139: string(16) "Testing ucfirst."
                    140: string(17) "1.testing ucfirst"
                    141: string(11) "HELLO wORLD"
                    142: string(11) "HELLO wORLD"
                    143: string(1) ""
                    144: string(1) ""
                    145: string(2) "0"
                    146: string(4) "Abcd"
                    147: string(3) "Xyz"
                    148: string(6) "String"
                    149: string(2) "-3"
                    150: string(2) "-3"
                    151: string(6) "-3.344"
                    152: string(6) "-3.344"
                    153: string(0) ""
                    154: string(4) "NULL"
                    155: string(1) "0"
                    156: string(1) "0"
                    157: string(1) "1"
                    158: string(4) "TRUE"
                    159: string(1) "1"
                    160: string(1) "1"
                    161: string(8) "1.234444"
                    162: string(0) ""
                    163: string(5) "FALSE"
                    164: string(1) " "
                    165: string(5) "     "
                    166: string(1) "B"
                    167: string(2) "\t"
                    168: string(1) "    "
                    169: string(2) "12"
                    170: string(8) "12twelve"
                    171: 
                    172: #### Testing Miscelleneous inputs ####
                    173: --- Testing arrays ---
                    174: Warning: ucfirst() expects parameter 1 to be string, array given in %s on line %d
                    175: NULL
                    176: 
                    177: --- Testing objects ---
                    178: string(12) "Hello, world"
                    179: 
                    180: --- Testing Resources ---
                    181: string(6) "Stream"
                    182: string(1) "0"
                    183: 
                    184: --- Testing a longer and heredoc string ---
                    185: string(639) "Abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789
                    186: abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789
                    187: abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789
                    188: abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789
                    189: abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789
                    190: abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789
                    191: abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789
                    192: @#$%^&**&^%$#@!~:())))((((&&&**%$###@@@!!!~~~~@###$%^&*
                    193: abcdefghijklmnopqrstuvwxyz0123456789abcdefghijklmnopqrstuvwxyz0123456789"
                    194: 
                    195: --- Testing a heredoc null string ---
                    196: string(0) ""
                    197: 
                    198: --- Testing simple and complex syntax strings ---
                    199: string(5) "World"
                    200: string(7) "World'S"
                    201: 
                    202: Notice: Undefined variable: strS in %s on line %d
                    203: string(0) ""
                    204: string(6) "WorldS"
                    205: string(6) "WorldS"
                    206: 
                    207: --- Nested ucfirst() ---
                    208: string(5) "Hello"
                    209: 
                    210: #### error conditions ####
                    211: Warning: ucfirst() expects exactly 1 parameter, 0 given in %s on line %d
                    212: 
                    213: Warning: ucfirst() expects exactly 1 parameter, 2 given in %s on line %d
                    214: 
                    215: Warning: ucfirst() expects exactly 1 parameter, 2 given in %s on line %d
                    216: Done

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>