Задача: если в строке первый символ '-', то его удалить.

golos81

Новичок
Задача: если в строке первый символ '-', то его удалить.

Задача: если в строке $photo_right первый символ '-', то его удалить.

Сделал так:
PHP:
if (($pos = strpos($photo_right, '-')) == 0) $photo_right=substr($photo_right, 1);
Но что-то мне подсказывает, есть решение принципиально проще.

Как вы считаете?:)
 

WP

^_^
Фанат
Не удоволетворяет данной задаче.
golos81
PHP:
$photo_right = substr($photo_right,0,1) == '-'?substr($photo_right,1):$photo_right;
Твой вариант вполне нормален, за исключением того что не надо $pos присваивать, и надо проверять используя ===, а не ==, т.к. в случае если '-' там нет вообще - условие выполнится.
 

WP

^_^
jonjonson
PHP:
$photo_right = '--test';
$photo_right = ltrim ($photo_right, "-");
var_dump($photo_right);
// string(4) "test"
А должно быть -test. Вот почему.
 

jonjonson

Охренеть
WP, судя по постановке задачи - да. Но мне кажется, что golos81 такой вариант не рассматривал...

Хотя молчу, а то как гадалка могу попасть в немилость :)
 

Фанат

oncle terrible
Команда форума
Нет, не проще. функция - стандартный механизм, и если он подходит, то проще использовать его.
А остальное - дело вкуса. А о вкусах не спорят.
 

Gorynych

Посетитель PHP-Клуба
God методы {} и [] не рекомендуются в дальнейшем для PHP версии 6
 

golos81

Новичок
Автор оригинала: WP
jonjonson
PHP:
$photo_right = '--test';
$photo_right = ltrim ($photo_right, "-");
var_dump($photo_right);
// string(4) "test"
А должно быть -test. Вот почему.
Всем БАЛЬШОЕ спасибо:)

WP, ты прав!, но в моем случае, как раз подойдет этот вариант, так как очень редко выскакивает '--'. Первоначально я этот вариант не учел.
 

Bitterman

Новичок
golos81
но в моем случае, как раз подойдет этот вариант, так как очень редко выскакивает '--'
То есть, если все-таки выскочит '--', то скрипт отработает неправильно? И ты решил на это забить? Хм, несколько... странно.
 

Gorynych

Посетитель PHP-Клуба
Оффтопик 2 itprog: да, остается, но в докладе на прошлой конференции Андрей Змиевский, говоря о поддержке Unicode, призвал не использовать оператор смещения [], а привыкать к текстовым итераторам.

мне думается, что совет Андрея можно приравнивать к руководству :)

полный текст доклада можно найти на http://www.gravitonic.com/talks/
 

WP

^_^
golos81
Надо учитывать все варианты, даже самые маловероятные (хотя, в данном случае, вариант, думаю, достаточно вероятный). А функция ltrim делает почти тоже самое что и мой код, только в цикле и с поиском каждого символа во втором аргументе. Так что это как минимум менее производительно, а как максимум неправильно из-за вероятности '--'.
 

Фанат

oncle terrible
Команда форума
WP
давай не будем рассуждать о производительности
 

itprog

Cruftsman
Gorynych
Тем не менее для получения только первого символа использовать TextIterator затратно
 
Сверху