Rolf B: Vorfahren aus Datenbank rekursiv ermitteln?

Beitrag lesen

Hallo tk,

Das wird so nicht funktionieren: die Werte in $_GET (und auch $_POST) sind immer Strings, egal welcher Wert darin steht.

Nein. Der Webserver initialisiert sie als Strings. Danach sind sie Freiwild.

$_GET['id'] = intval($_GET['id']);
echo gettype($_GET['id']);

liefert integer. Plus Gemaule von PHP, wenn man den id-Parameter nicht übergibt, ich weiß.

Aber ich hätte auch eigentlich gar nich im Sinn gehabt, einen $_GET-Eintrag zu überschreiben; ich hätte dafür eine neue Variable gemacht. Einfach zur Sicherheit, um nicht irgendwo im Code auf $_GET[...] zuzugreifen und überlegen zu müssen: Ist dieser Wert jetzt validiert, oder nicht?

ctype_digit()

Kann man ergänzen, ja. intval("12a") liefert 12. Aber intval sollte man auf jeden Fall verwenden, nicht filter_input mit FILTER_VALIDATE_INT, der flippt bei "010" aus und kriegt die Oktalpest.

global ist böse™

Naja, gelegentlich erlaube ich mir da auch die eine oder andere Bosheit, oder tarne die global-Variable als Instanzvariable einer Worker-Klasse oder als static property einer anderen Klasse.

Man muss auch immer sehen, dass Linuchs kein Jungspund mehr ist, der gerade das Programmieren anfängt, sondern seit Jahrzehnten aktiv ist. Meine frühere Chefin meinte mal: Einen guten COBOL Programmierer erkennt man daran, dass er in jeder beliebigen Programmiersprache COBOL-Programme schreiben kann.

Ich weiß zwar nicht, ob Linuchs eine unglückliche Jugend als COBOL-Knecht hatte, aber wenn man mit globals groß geworden ist, fällt eine abweichende Denke schwer. Das nehme ich dann einfach hin. Es funktioniert für ihn, es ist sein Stil, und dagegen anzudiskutieren ist unnötiger Energieaufwand für alle Beteiligten. Ich mache gelegentlich Anmerkungen dazu, und wenn er sie annimmt, freue ich mich. Wenn nicht - na gut. Vielleicht lernt ein anderer was draus.

Rolf

--
sumpsi - posui - obstruxi