Мне нужно сделать это, в основном:
Parameter | Expected Result (array)
a | [a]
a_b | [a, b]
a_b_c | [a, b, c]
a__b | [a_b] <-- note that the double underline be unique
a_b__c | [a, b_c]
Я знаю, как я делаю это с методами explode
и str_replace
и с использованием foreach
для преобразования __
в _
,В основном это:
<?php
$parameter = 'a_b__c';
$expected = str_replace( '__', "\0", $parameter ); # "a_b\0c"
$expected = explode( '_', $expected ); # ["a", "b\0c"]
foreach ( $expected as &$item )
$item = str_replace( "\0", '_', $item );
# ["a", "b_c"]
?>
Но я думаю, что с preg_*
это может быть быстрее.Или я не прав?
Ну, я принимаю любое лучшее предложение.:)
Справка : $parameter
всегда будет идентификатором PHP (обычно идентификатором класса).