Eine Frage über deine Code..
bearbeitet von ursus contionabundo> Ein Teil der ich nicht gut verstehe...
>
> ~~~PHP
>
> public function __construct( $arNewLinks = false ) {
> ~~~
> Hier wird an der Eigenschaft $arNewLinks der boolean , false gegeben...
Richtig. Das mache ich, damit ich einen Default-Wert übergeben kann. Wenn ich mit
~~~php
$LinkList = new NavigationLinkList()
~~~
Das Objekt erzeuge, dann wird `__construct()` ausgeführt. Übergebe ich dabei keine Arrays, dann wäre das ohne `( $arNewLinks = false )` ein Fehler.
Durch den kleinen Trick kann ich mir aussuchen, ob ich die Liste schon beim Erzeugen angebe oder später alle Links einzeln oder alle auf einmal.
> und hier
>
> ~~~PHP
> if ( isset( $arNewLinks['URL'] ) && isset( $arNewLinks['TEXT'] ) ) {
> ~~~
>
> Was wird gefragt , wenn nicht.... oder wenn... ??
Da wird getestet, ob $arNewLinks ein Element mit dem Key 'URL' und eines mit dem Element 'TEXT' hat.
Durch diesen Trick teste ich die übergebenen Werte darauf, ob diese meinen Erwartungen entsprechen. Wenn die übergebenen Werte nicht den Erwartungen wird einfach nichts anderes gemacht als `false` zurückzugeben.
Man könnte damit testen, ob bei der Übergabe der Werte an die Methode `addLinks` alles geklappt hat - und wenn nicht, den Fehler anzeigen, loggen oder behandeln:
~~~php
$navListe = new NavigationLinkList();
if (
false === $navListe -> addLinks( [ 'URL' => '/provee/page_1.php', 'TEXT' => '1' ] )
) {
# Fehlerbehandlung!
echo "<pre>Fataler Programmfehler! Falsche Werte an Methode NavigationLinkList->addLinks() übergeben:\n";
print_r( [ 'URL' => '/provee/page_1.php', 'TEXT' => '1' ] );
exit;
}
~~~