Замяна на последните два знака в една дума със звездички

Етюд (на френски étude "етюд") - инструментална пиеса, обикновено с малък обем, основана на честото използване на някаква трудна изпълнителска техника и предназначена да подобри техниката на изпълнителя.(c) wikipedia

Първото нещо, което идва на ум е, че променлива от типstringе масив от знаци от типchar, така че е достатъчно да замените последните два индекса:

Задачата се решава в челото, кодът е лошо четлив, тъй като се изпълняват две действия от един и същи тип.

Втората опция е по-сложна: използвайки стандартната функция substr(), премахваме последните два знака и добавяме две звездички:

Опцията работи, но не ми харесва, че трябва да свързвам низове, което отново се отразява на четливостта на кода.

Третата опция също използва стандартната функция substr_replace(), която замества един подниз с друг:

Добър вариант, но се използва функцията strlen(), затова отваряме ръководството за php и разглеждаме синтаксиса на функцията substr_replace():

stringsubstr_replace(stringstr, stringreplacement, intstart[, intlength]) Тази функция замества някои поднизове в изходния низ с други. Той връща низаstr, в който частта от знака на позицияstartи дължинаlengthе заменена от низаreplacement. Ако аргументът за дължинаlengthне е посочен, замяната се извършва до края.

Ако стойността на аргументаstartе положителна, тогава броенето се извършва от началото на низаstr, в противен случай от края. Акоlengthе неотрицателно, той указва дължината на фрагмента, който трябва да бъде заменен. Ако е отрицателен, тогава това е броят знаци от края на низа str до последния знак на фрагмента, който трябва да бъде заменен.

И тогаваокончателна версия:

Можете също да използвате регулярни изрази, което е малко по-бавно от крайния резултат: