Return to tostring_001.phpt CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / tests / classes |
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====