Глава 2. Встроенные константы
Так как каждый падеж имеет свой номер, то для упрощения работы с библиотекой используются константы. Описание констант можно найти в классе NCL. Рассмотрим все из них.
Для указания пола используются константы:
- NCL::$MAN – мужской пол
- NCL::$WOMAN – женский пол
Для указания падежей русского языка:
- NCL::$IMENITLN - именительный падеж
- NCL::$RODITLN - родительный падеж
- NCL::$DATELN - дательный падеж
- NCL::$VINITELN - винительный падеж
- NCL::$TVORITELN - творительный падеж
- NCL::$PREDLOGN - предложный падеж
Для указания падежей украинского языка:
- NCL::$UaNazyvnyi – називний відмінок
- NCL::$UaRodovyi – родовий відмінок
- NCL::$UaDavalnyi – давальний відмінок
- NCL::$UaZnahidnyi – знахідний відмінок
- NCL::$UaOrudnyi – орудний відмінок
- NCL::$UaMiszevyi – місцевий відмінок
- NCL::$UaKlychnyi – кличний відмінок
Стоит обратить внимание, что все падежи, кроме «кличного відмінка», в русском и украинском языках — это одно и то же. А это значит, что нет разницы, использовать NCL::$RODITLN или NCL::$UaRodovyi, так как NCL::$RODITLN = NCL::$UaRodovyi.
Использование встроенных констант
Метод q($fullname, $caseNum=null, $gender=null) имеет три параметра. Два из них не есть обязательными.
Параметр $caseNum указывает на падеж, в который нужно поставить слово $fullname. Если он не указан, или равен null, тогда метод возвращает массив со всеми падежами.
Параметр $gender указывает на пол человека. Если в качестве параметра указать NCL::$WOMAN, тогда склонение будет производиться по правилам склонения женских ФИО. Если же параметр не указан или равен null, тогда система сама определит пол человека.
В параметре $fullname может быть любое количество слов. Система сама разделит их на составные части и произведет склонение каждой.
В файле Tutorial/lesson2.php приведены примеры использования метода q().
<?php
header('Content-type: text/html; charset=utf-8');
require '../Library/NCL.NameCase.ru.php';
$nc = new NCLNameCaseRu();
/**
* Указываем падеж русской константой
*/
echo $nc->q('Андрей Николаевич', NCL::$RODITLN)."\n";
/**
* Указываем падеж украинской константой
*/
echo $nc->q('Андрей Николаевич', NCL::$UaRodovyi)."\n";
/**
* Явно не указываем пол
*/
print_r($nc->q('Иващук'));
/**
* Указываем мужской пол
*/
print_r($nc->q('Иващук', null, NCL::$MAN));
?>
В результате выполнения получаем следующее:
Андрея Николаевича Андрея Николаевича Array ( [0] => Иващук [1] => Иващук [2] => Иващук [3] => Иващук [4] => Иващук [5] => Иващук ) Array ( [0] => Иващук [1] => Иващука [2] => Иващуку [3] => Иващука [4] => Иващуком [5] => Иващуке )