Wenn Sie PHP >= 5.3 verwenden, können Sie lcfirst anstelle von strtolower verwenden.
Aktualisieren
Ein zweiter Parameter wurde zu ucwords in PHP 5.4.32/5.5.16 hinzugefügt, was bedeutet, dass wir nicht zuerst die Bindestriche in Leerzeichen ändern müssen (danke an Lars Ebert und PeterM für den Hinweis). Hier ist der aktualisierte Code:
if (!$capitalizeFirstCharacter) { $str = lcfirst($str); }
– AVProgrammierer
19. Juli 2013 um 6:51 Uhr
Beachten Sie, dass ucwords akzeptiert tatsächlich ein Trennzeichen als zweiten Parameter (siehe Antwort von PeterM), also einer der str_replace Anrufe wären unnötig.
– Lars Ebert
14. Februar 2017 um 12:14 Uhr
Danke für die Info @LarsEbert. Ich habe die Antwort aktualisiert.
– Webbiedave
16. Februar 2017 um 23:08 Uhr
Die Bedingung kann mit Hilfe des ternären Operators umgeschrieben werden $str = ! $capitalizeFirstCharacter ? lcfirst($str) : $str; hauptsächlich für die Lesbarkeit (obwohl einige anderer Meinung sein mögen) und/oder die Reduzierung der Codekomplexität.
– Chris Athanasiadis
27. Mai 2020 um 7:38 Uhr
PeterM
Das geht ganz einfach mit uwords die akzeptiert Trennzeichen als Parameter:
function camelize($input, $separator="_")
{
return str_replace($separator, '', ucwords($input, $separator));
}
HINWEIS: Benötigen Sie PHP mindestens 5.4.32, 5.5.16
Dies gibt so etwas wie CamelCase zurück – wenn Sie möchten, dass dies so etwas wie CamelCase ist, dann: return str_replace($separator, '', lcfirst(ucwords($input, $separator)));
– Jeff S.
16. November 2015 um 4:09 Uhr
ucwords hat einen zweiten Parameter delimiterAlso str_replace("_", "", ucwords($input, "_")); ist gut genug (in den meisten Fällen: P
– wbsnail
23. Mai 2017 um 8:42 Uhr
Zur Verdeutlichung: Die Antwort von PeterM kommt zurück oberes Kamelgehäuse (= PascalCase). Der Kommentar von Jeff S. kommt zurück unteres Kamelgehäuse (= Dromedarfall).
– Dan
18. Mai 2021 um 8:02 Uhr
So oder so. Das OP brauchte eine Lösung für Kebab-Fall, nicht für Schlangenfall.
Die Funktion fehlte a return …aktualisiert, danke. Hier ist ein Link, um dies zu testen 3v4l.org/YBHPd
– Doppeljosch
10. Januar 2018 um 23:06 Uhr
Wie können wir für ein Array in einer Zeile verarbeiten?
– Hugo-dev
14. Dezember 2021 um 19:32 Uhr
das ist meine Variante, wie ich damit umgehen soll. Hier habe ich zwei Funktionen, die erste camelCase verwandelt alles in ein cameCase und es wird nichts durcheinander bringen, wenn die Variable bereits cameCase enthält. Zweite uncamelCase verwandelt camelCase in einen Unterstrich (großartiges Feature beim Umgang mit Datenbankschlüsseln).