1--TEST-- 2UConverter::convert() w/ Callback Reasons 3--SKIPIF-- 4<?php if( !extension_loaded( 'intl' ) ) print 'skip'; ?> 5--FILE-- 6<?php 7class MyConverter extends UConverter { 8 /** 9 * Called during conversion from source encoding to internal UChar representation 10 */ 11 public function toUCallback($reason, $source, $codeUnits, &$error) { 12 echo "toUCallback(", UConverter::reasonText($reason), ", ...)\n"; 13 return parent::toUCallback($reason, $source, $codeUnits, $error); 14 } 15 16 /** 17 * Called during conversion from internal UChar to destination encoding 18 */ 19 public function fromUCallback($reason, $source, $codePoint, &$error) { 20 echo "fromUCallback(", UConverter::reasonText($reason), ", ...)\n"; 21 return parent::fromUCallback($reason, $source, $codePoint, $error); 22 } 23 24} 25 26$c = new MyConverter('ascii', 'utf-8'); 27foreach(array("regular", "irregul\xC1\xA1r", "\xC2\xA1unsupported!") as $word) { 28 $c->convert($word); 29} 30--EXPECT-- 31toUCallback(REASON_RESET, ...) 32toUCallback(REASON_RESET, ...) 33fromUCallback(REASON_RESET, ...) 34fromUCallback(REASON_RESET, ...) 35toUCallback(REASON_RESET, ...) 36toUCallback(REASON_ILLEGAL, ...) 37toUCallback(REASON_RESET, ...) 38toUCallback(REASON_ILLEGAL, ...) 39fromUCallback(REASON_RESET, ...) 40fromUCallback(REASON_UNASSIGNED, ...) 41fromUCallback(REASON_RESET, ...) 42fromUCallback(REASON_UNASSIGNED, ...) 43toUCallback(REASON_RESET, ...) 44toUCallback(REASON_RESET, ...) 45fromUCallback(REASON_RESET, ...) 46fromUCallback(REASON_UNASSIGNED, ...) 47fromUCallback(REASON_RESET, ...) 48fromUCallback(REASON_UNASSIGNED, ...) 49toUCallback(REASON_CLOSE, ...) 50fromUCallback(REASON_CLOSE, ...) 51toUCallback(REASON_CLOSE, ...) 52fromUCallback(REASON_CLOSE, ...) 53