Gettext_Translations::parenthesize_plural_exression( string $expression ): string

Adds parentheses to the inner parts of ternary operators in plural expressions, because PHP evaluates ternary oerators from left to right


Parameters

$expression string Required
the expression without parentheses

Top ↑

Return

string the expression with parentheses added


Top ↑

Source

File: wp-includes/pomo/translations.php. View all references

public function parenthesize_plural_exression( $expression ) {
	$expression .= ';';
	$res         = '';
	$depth       = 0;
	for ( $i = 0; $i < strlen( $expression ); ++$i ) {
		$char = $expression[ $i ];
		switch ( $char ) {
			case '?':
				$res .= ' ? (';
				$depth++;
				break;
			case ':':
				$res .= ') : (';
				break;
			case ';':
				$res  .= str_repeat( ')', $depth ) . ';';
				$depth = 0;
				break;
			default:
				$res .= $char;
		}
	}
	return rtrim( $res, ';' );
}

Top ↑

User Contributed Notes

You must log in before being able to contribute a note or feedback.