Глава 2. Встроенные константы

Так как каждый падеж имеет свой номер, то для упрощения работы с библиотекой используются константы. Описание констант можно найти в классе NCL. Рассмотрим все из них.

Для указания пола используются константы:

Для указания падежей русского языка:

Для указания падежей украинского языка:

Стоит обратить внимание, что все падежи, кроме «кличного відмінка», в русском и украинском языках — это одно и то же. А это значит, что нет разницы, использовать 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('Иващук'nullNCL::$MAN));        
?>  

В результате выполнения получаем следующее:

Андрея Николаевича
Андрея Николаевича
Array
(
    [0] => Иващук
    [1] => Иващук
    [2] => Иващук
    [3] => Иващук
    [4] => Иващук
    [5] => Иващук
)
Array
(
    [0] => Иващук
    [1] => Иващука
    [2] => Иващуку
    [3] => Иващука
    [4] => Иващуком
    [5] => Иващуке
)