|
| 1 | +--TEST-- |
| 2 | +Collator attribute and strength methods on unconstructed object |
| 3 | +--EXTENSIONS-- |
| 4 | +intl |
| 5 | +--FILE-- |
| 6 | +<?php |
| 7 | + |
| 8 | +class Collator2 extends Collator { |
| 9 | + public function __construct() { |
| 10 | + // omitting parent::__construct($someLocale); |
| 11 | + } |
| 12 | +} |
| 13 | + |
| 14 | +$c = new Collator2(); |
| 15 | + |
| 16 | +$methods = [ |
| 17 | + 'getAttribute' => fn() => $c->getAttribute(Collator::NUMERIC_COLLATION), |
| 18 | + 'setAttribute' => fn() => $c->setAttribute(Collator::NUMERIC_COLLATION, Collator::ON), |
| 19 | + 'getStrength' => fn() => $c->getStrength(), |
| 20 | + 'setStrength' => fn() => $c->setStrength(Collator::SECONDARY), |
| 21 | +]; |
| 22 | + |
| 23 | +foreach ($methods as $method => $call) { |
| 24 | + try { |
| 25 | + $call(); |
| 26 | + } catch (Error $e) { |
| 27 | + echo $method, ': ', $e::class, ': ', $e->getMessage(), PHP_EOL; |
| 28 | + } |
| 29 | +} |
| 30 | + |
| 31 | +$functions = [ |
| 32 | + 'collator_get_attribute' => fn() => collator_get_attribute($c, Collator::NUMERIC_COLLATION), |
| 33 | + 'collator_set_attribute' => fn() => collator_set_attribute($c, Collator::NUMERIC_COLLATION, Collator::ON), |
| 34 | + 'collator_get_strength' => fn() => collator_get_strength($c), |
| 35 | + 'collator_set_strength' => fn() => collator_set_strength($c, Collator::SECONDARY), |
| 36 | +]; |
| 37 | + |
| 38 | +foreach ($functions as $function => $call) { |
| 39 | + try { |
| 40 | + $call(); |
| 41 | + } catch (Error $e) { |
| 42 | + echo $function, ': ', $e::class, ': ', $e->getMessage(), PHP_EOL; |
| 43 | + } |
| 44 | +} |
| 45 | + |
| 46 | +?> |
| 47 | +--EXPECT-- |
| 48 | +getAttribute: Error: Object not initialized |
| 49 | +setAttribute: Error: Object not initialized |
| 50 | +getStrength: Error: Object not initialized |
| 51 | +setStrength: Error: Object not initialized |
| 52 | +collator_get_attribute: Error: Object not initialized |
| 53 | +collator_set_attribute: Error: Object not initialized |
| 54 | +collator_get_strength: Error: Object not initialized |
| 55 | +collator_set_strength: Error: Object not initialized |
0 commit comments