PHP/Laravel 获取 class 名称中的最后一个词:App\Models\Example\Class;并将其小写:class
PHP/Laravel get last word in a a class name: App\Models\Example\Class; and lowercase it: class
有人看到 simpler/cleaner 解决这个问题的方法吗?我有存储为完整 class 名称的多态类型,我需要访问 class 中的最后一个词并将其小写以找到配置文件:
示例:$this->ant_type = App\Models\AntTypes\Request
$antTypeArray = explode('\', $this->ant_type);
$workflow = strtolower(array_values(array_slice($antTypeArray, -1))[0]);
它当然工作得很好,只是好奇是否有更简单的方法来实现它。我正在使用 Laravel 5.7.
找到最后一个\
,取从那个点+1到字符串末尾的子串:
strtolower(substr($str, strrpos($str, '\') + 1))
代码因简短而打高尔夫球,但产生 E_NOTICE
strtolower(end(explode('\',$str)))
我想你可以用 PHP 做到这一点 ReflectionClass
。
$workflow = strtolower((new \ReflectionClass($this->ant_type))->getShortName());
有人看到 simpler/cleaner 解决这个问题的方法吗?我有存储为完整 class 名称的多态类型,我需要访问 class 中的最后一个词并将其小写以找到配置文件:
示例:$this->ant_type = App\Models\AntTypes\Request
$antTypeArray = explode('\', $this->ant_type);
$workflow = strtolower(array_values(array_slice($antTypeArray, -1))[0]);
它当然工作得很好,只是好奇是否有更简单的方法来实现它。我正在使用 Laravel 5.7.
找到最后一个\
,取从那个点+1到字符串末尾的子串:
strtolower(substr($str, strrpos($str, '\') + 1))
代码因简短而打高尔夫球,但产生 E_NOTICE
strtolower(end(explode('\',$str)))
我想你可以用 PHP 做到这一点 ReflectionClass
。
$workflow = strtolower((new \ReflectionClass($this->ant_type))->getShortName());