File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / tests / classes / tostring_001.phpt
Revision 1.1: download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 23:48:06 2012 UTC (12 years, 5 months ago) by misho
CVS tags: MAIN, HEAD
Initial revision

    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>