ursus contionabundo: Eine Frage über deine Code..

Beitrag lesen

Ein Teil der ich nicht gut verstehe...


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

$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

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 meinen Erwartungen entsprechen 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:

$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;
}