Annotation of embedaddon/php/tests/classes/tostring_001.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: ZE2 __toString()
                      3: --FILE--
                      4: <?php
                      5: 
                      6: function my_error_handler($errno, $errstr, $errfile, $errline) {
                      7:        var_dump($errstr);
                      8: }
                      9: 
                     10: set_error_handler('my_error_handler');
                     11: 
                     12: class test1
                     13: {
                     14: }
                     15: 
                     16: class test2
                     17: {
                     18:     function __toString()
                     19:     {
                     20:        echo __METHOD__ . "()\n";
                     21:         return "Converted\n";
                     22:     }
                     23: }
                     24: 
                     25: class test3
                     26: {
                     27:     function __toString()
                     28:     {
                     29:        echo __METHOD__ . "()\n";
                     30:         return 42;
                     31:     }
                     32: }
                     33: echo "====test1====\n";
                     34: $o = new test1;
                     35: print_r($o);
                     36: var_dump((string)$o);
                     37: var_dump($o);
                     38: 
                     39: echo "====test2====\n";
                     40: $o = new test2;
                     41: print_r($o);
                     42: print $o;
                     43: var_dump($o);
                     44: echo "====test3====\n";
                     45: echo $o;
                     46: 
                     47: echo "====test4====\n";
                     48: echo "string:".$o;
                     49: 
                     50: echo "====test5====\n";
                     51: echo 1 . $o;
                     52: echo 1 , $o;
                     53: 
                     54: echo "====test6====\n";
                     55: echo $o . $o;
                     56: echo $o , $o;
                     57: 
                     58: echo "====test7====\n";
                     59: $ar = array();
                     60: $ar[$o->__toString()] = "ERROR";
                     61: echo $ar[$o];
                     62: 
                     63: echo "====test8====\n";
                     64: var_dump(trim($o));
                     65: var_dump(trim((string)$o));
                     66: 
                     67: echo "====test9====\n";
                     68: echo sprintf("%s", $o);
                     69: 
                     70: echo "====test10====\n";
                     71: $o = new test3;
                     72: var_dump($o);
                     73: echo $o;
                     74: 
                     75: ?>
                     76: ====DONE====
                     77: --EXPECTF--
                     78: ====test1====
                     79: test1 Object
                     80: (
                     81: )
                     82: string(54) "Object of class test1 could not be converted to string"
                     83: string(0) ""
                     84: object(test1)#%d (0) {
                     85: }
                     86: ====test2====
                     87: test2 Object
                     88: (
                     89: )
                     90: test2::__toString()
                     91: Converted
                     92: object(test2)#%d (0) {
                     93: }
                     94: ====test3====
                     95: test2::__toString()
                     96: Converted
                     97: ====test4====
                     98: test2::__toString()
                     99: string:Converted
                    100: ====test5====
                    101: test2::__toString()
                    102: 1Converted
                    103: 1test2::__toString()
                    104: Converted
                    105: ====test6====
                    106: test2::__toString()
                    107: test2::__toString()
                    108: Converted
                    109: Converted
                    110: test2::__toString()
                    111: Converted
                    112: test2::__toString()
                    113: Converted
                    114: ====test7====
                    115: test2::__toString()
                    116: string(19) "Illegal offset type"
                    117: ====test8====
                    118: test2::__toString()
                    119: string(9) "Converted"
                    120: test2::__toString()
                    121: string(9) "Converted"
                    122: ====test9====
                    123: test2::__toString()
                    124: Converted
                    125: ====test10====
                    126: object(test3)#%d (0) {
                    127: }
                    128: test3::__toString()
                    129: string(53) "Method test3::__toString() must return a string value"
                    130: ====DONE====

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