Beiträge: 259
Themen: 11
Registriert seit: 06.03.2020
MyBB-Version: 1.8.27
09.02.2021, 11:55
(Dieser Beitrag wurde zuletzt bearbeitet: 09.02.2021, 11:55 von StefanT.
Bearbeitungsgrund: Vollzitat entfernt
)
Hy, das mit switch case habe ich schon die letzten Tage versucht, bis jetzt bekommen es aber nicht so hin wie ich möchte, versuche mich aber heute weiter
Danke lg
Na habe doch geschafft , Danke mal an ExiTuS , ItsmeJAY, StefanT für eure Geduld , Tipps und Verbesserungen, mein nächster Versuch  switch /case, mein Nichtkönnen gleiche ich mit Hartnäckigkeit und Ausdauer aus :-)
PHP-Code: //Begin Time welcome Tc4me $uhrzeit = gmdate($mybb->settings['timeformat'],TIME_NOW + $mybb->user['timezone'] * 3600); switch ($uhrzeit) { case $uhrzeit <= 4: $lang->welcome_back = $lang->sprintf($lang->welcome_back_night, build_profile_link(htmlspecialchars_uni($mybb->user['username']), $mybb->user['uid']), $timenow); break;
case $uhrzeit <= 10: $lang->welcome_back = $lang->sprintf($lang->welcome_back_morning, build_profile_link(htmlspecialchars_uni($mybb->user['username']), $mybb->user['uid']), $timenow); break;
case $uhrzeit <= 18: $lang->welcome_back = $lang->sprintf($lang->welcome_back_day, build_profile_link(htmlspecialchars_uni($mybb->user['username']), $mybb->user['uid']), $timenow); break;
case $uhrzeit <= 22: $lang->welcome_back = $lang->sprintf($lang->welcome_back_evening, build_profile_link(htmlspecialchars_uni($mybb->user['username']), $mybb->user['uid']), $timenow); break;
default:$lang->welcome_back = $lang->sprintf($lang->welcome_back_night, build_profile_link(htmlspecialchars_uni($mybb->user['username']), $mybb->user['uid']), $timenow); } //End Time welcome Tc4me
Beiträge: 8
Themen: 0
Registriert seit: 04.02.2021
GM. Ich habe jetzt die neue Version in der Global.php eingegeben. Funktioniert ! Aber was ist jetzt besser daran?
Greet Omega6
Beiträge: 1.729
Themen: 178
Registriert seit: 08.02.2018
MyBB-Version: 1.8.*
Wenigerer Code und schneller veränderbar.
Sollte ich der Ansicht sein helfen zu können biete ich Hilfe(n) an! ...ich bitte jedoch nicht darum helfen zu dürfen!
Tools ◀ [ Unixzeit ⇔ Realzeit] ♦ [ BOM-Finder] ♦ [ SQL-Prefix-Changer] ♦ [ USV-Rechner] ♦ [ PlugIns]
Beiträge: 867
Themen: 9
Registriert seit: 08.02.2016
MyBB-Version: 1.8.38
Jetzt wird aus diesem Thema schon beinahe eine wissenschaftliche Arbeit
If und Switch unterscheiden sich in der eigentlichen Funktionsweise kaum - If entscheidet nach Boolean (wahr/falsch) und Switch nach Wert. Es bleibt also beliebig austauschbar.
In diesem Falle ist Switch sogar aufgeblähter, weil es mehr Codezeilen verbraucht und ist ebenso einfach/schnell zu verändern wie If. Ich persönlich würde beim simplen If-elseif-else bleiben und zudem nur "< Uhrzeit" verwenden
[ExiTuS]
Beiträge: 259
Themen: 11
Registriert seit: 06.03.2020
MyBB-Version: 1.8.27
10.02.2021, 12:22
(Dieser Beitrag wurde zuletzt bearbeitet: 10.02.2021, 12:23 von tc4me.)
Hallo, für mich und mein Eindruck , Übersichtlicher, als If bzw Elseif , und was ich mir im Netz gesucht und gelesen habe , bringt es viel bei großen Abfragen ...., die Anweisung break; bricht die Switch/Case Abfrage ab, unnötige weitere Abfragen werden NICHT durchgeführt, die theoretisch folgen könnten. Ich glaube im Ganzen bei vieler solcher Abfragen macht es sicher Sinn, um Zeit , Platz und Geschwindigkeit zu verbessern, nach dem Motto, auch Kleinzeug macht Mist und viel Kleinzeug macht viel Mist.
Beiträge: 25.797
Themen: 271
Registriert seit: 20.09.2005
Der ganze Zweck von else(if) ist, dass sie nur ausgeführt werden, wenn die vorherige Abfrage falsch war. switch bietet hier keinen Vorteil.
Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Beiträge: 1.136
Themen: 39
Registriert seit: 27.08.2014
Es gibt keine genaue oder richtige Aussage. Ich mache es vom Inhalt abhängig. In dem Fall sieht if einfach hässlich aus. Kommt halt immer drauf an.
Beiträge: 259
Themen: 11
Registriert seit: 06.03.2020
MyBB-Version: 1.8.27
Hallo StefanT, Hallo ItsmeJAY, ok, also wenn ich euch richtig verstehe, gehts nur um das Motto, das Auge isst mit.
Optisch schöner, aber es schmeckt nicht besser
Beiträge: 259
Themen: 11
Registriert seit: 06.03.2020
MyBB-Version: 1.8.27
Hat jemand wieder mal nen Tipp für mich!
Wenn ich von php 7.4 auf PHP 8.x umstelle, funktioniert die Begrüssung nach tageszeit nicht mehr , sonder steht nur mehr guten Abend egal welche Zeit ist.
Code: //Begin Time welcome
$uhrzeit = gmdate($mybb->settings['timeformat'],TIME_NOW + $mybb->user['timezone'] * 3600);
switch ($uhrzeit) {
case $uhrzeit <= 4:
$lang->welcome_back = $lang->sprintf($lang->welcome_back_night, build_profile_link(htmlspecialchars_uni($mybb->user['username']), $mybb->user['uid']), $timenow);
break;
case $uhrzeit <= 10:
$lang->welcome_back = $lang->sprintf($lang->welcome_back_morning, build_profile_link(htmlspecialchars_uni($mybb->user['username']), $mybb->user['uid']), $timenow);
break;
case $uhrzeit <= 18:
$lang->welcome_back = $lang->sprintf($lang->welcome_back_day, build_profile_link(htmlspecialchars_uni($mybb->user['username']), $mybb->user['uid']), $timenow);
break;
case $uhrzeit <= 22:
$lang->welcome_back = $lang->sprintf($lang->welcome_back_evening, build_profile_link(htmlspecialchars_uni($mybb->user['username']), $mybb->user['uid']), $timenow);
break;
default:$lang->welcome_back = $lang->sprintf($lang->welcome_back_night, build_profile_link(htmlspecialchars_uni($mybb->user['username']), $mybb->user['uid']), $timenow);
}
//End Time welcome
lg Tc4me
Beiträge: 259
Themen: 11
Registriert seit: 06.03.2020
MyBB-Version: 1.8.27
Edit gelöst :
Code in der global.php angepasst
Code: //Begin Time welcome Tc4me
$uhrzeit = gmdate($mybb->settings['timeformat'], $mybb->user['timezone'] * 3600);
switch ($uhrzeit) {
case $uhrzeit >= 4 && $uhrzeit < 10:
$lang->welcome_back = $lang->sprintf($lang->welcome_back_night, build_profile_link(htmlspecialchars_uni($mybb->user['username']), $mybb->user['uid']), $timenow);
break;
case $uhrzeit >= 10 && $uhrzeit < 18:
$lang->welcome_back = $lang->sprintf($lang->welcome_back_morning, build_profile_link(htmlspecialchars_uni($mybb->user['username']), $mybb->user['uid']), $timenow);
break;
case $uhrzeit >= 18 && $uhrzeit < 22:
$lang->welcome_back = $lang->sprintf($lang->welcome_back_day, build_profile_link(htmlspecialchars_uni($mybb->user['username']), $mybb->user['uid']), $timenow);
break;
case $uhrzeit >= 22 && $uhrzeit < 4:
$lang->welcome_back = $lang->sprintf($lang->welcome_back_evening, build_profile_link(htmlspecialchars_uni($mybb->user['username']), $mybb->user['uid']), $timenow);
break;
default:$lang->welcome_back = $lang->sprintf($lang->welcome_back_night, build_profile_link(htmlspecialchars_uni($mybb->user['username']), $mybb->user['uid']), $timenow);
}
//End Time welcome Tc4me
|