The behaviour when a falsy value is passed as the $locale is undocumented, but it appears that it returns the primary language of the default system language. In my case:
Locale::getPrimaryLanguage(null);
Returns 'en'. So make sure to test $locale before passing it to the method.Locale::getPrimaryLanguage
locale_get_primary_language
(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)
Locale::getPrimaryLanguage -- locale_get_primary_language — Gets the primary language for the input locale
Description
Object-oriented style
Procedural style
Gets the primary language for the input locale
Parameters
locale-
The locale to extract the primary language code from
Return Values
The language code associated with the language.
Returns null when the length of locale exceeds INTL_MAX_LOCALE_LEN.
Examples
Example #1 locale_get_primary_language() example
<?php
echo locale_get_primary_language('zh-Hant');
?>Example #2 OO example
<?php
echo Locale::getPrimaryLanguage('zh-Hant');
?>The above example will output:
zh
See Also
- locale_get_script() - Gets the script for the input locale
- locale_get_region() - Gets the region for the input locale
- locale_get_all_variants() - Gets the variants for the input locale
+add a note