PHP获取类名中第一个单词和最后一个单词

在YurunPHP中自动加载规则,可以根据类名中的第一个单词或者最后一个单词来加载。那么是怎么实现的呢,下面贴出代码。

源码

/**
 * 获取第一个单词
 * @param string $str           
 * @return string
 */
function getFirstWord($str)
{
    preg_match_all('/^(([A-Z]*)[A-Z][^A-Z]*|([A-Z][^A-Z]*))\S*/', $str, $out);
    return '' === $out[2][0] ? $out[1][0] : $out[2][0];
}
/**
 * 获取最后一个单词
 * @param string $str
 * @return string
 */
function getLastWord($str)
{
    preg_match_all('/^\S*([A-Z]{1}[^A-Z]*)/', $str, $out);
    return $out[1][0];
}

调试代码

echo "getFirstWord:\n";
echo 'Test:',getFirstWord('Test'),"\n";
echo 'TestModel:',getFirstWord('TestModel'),"\n";
echo 'TestUserModel:',getFirstWord('TestUserModel'),"\n";
echo 'IPUserModel:',getFirstWord('IPUserModel'),"\n";

echo "\ngetLastWord:\n";
echo 'Test:',getLastWord('Test'),"\n";
echo 'TestModel:',getLastWord('TestModel'),"\n";
echo 'TestUserModel:',getLastWord('TestUserModel'),"\n";
echo 'IPUserModel:',getLastWord('IPUserModel'),"\n";

运行结果

getFirstWord:

Test:Test

TestModel:Test

TestUserModel:Test

IPUserModel:IP


getLastWord:

Test:Test

TestModel:Model

TestUserModel:Model

IPUserModel:Model

  • 标签
  • 发表评论
当前用户:
  • 评论列表