Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: BUG? - application_top.php

    web0null

    • Experte
    • Beiträge: 1.998
    Re: BUG? - application_top.php
    Antwort #15 am: 05. März 2015, 02:56:48
    Nachtrag:
    Zitat
    Code: PHP  [Auswählen]
    if (!FOO) { ...
    weil, wenn die Konstante mit einem leeren String definiert ist Boolean 'false' return-t wird.

    Nochmal nöö,
    hier würde "true" return-t werden (wenn die Konstante mit einem leeren String gefüllt ist).

    In dem Falle dass die Konstante nicht definiert ist, würde folgendes
    Code: PHP  [Auswählen]
    if(SECURITY_CODE_LENGTH == '')

    immer "false" ergeben, denn eine nicht definierte Konstante, wäre dann ein einfacher "String" und keine Konstante.
    Im "Vergleich" würde es sich selbst, also SECURITY_CODE_LENGTH ergeben,

    Also praktisch das hier,
    Code: PHP  [Auswählen]
    if(SECURITY_CODE_LENGTH == 'SECURITY_CODE_LENGTH')

    und nur das könnte "true" ergeben.
    Somit ist der ursprüngliche Code Schwachsinn.

    Gruß
    Marktplatz - Eine große Auswahl an neuen und hilfreichen Modulen sowie modernen Templates für die modified eCommerce Shopsoftware

    noRiddle (revilonetz)

    • Experte
    • Beiträge: 14.001
    • Geschlecht:
    Re: BUG? - application_top.php
    Antwort #16 am: 05. März 2015, 07:56:55
    :hust: Du hast Recht, nehme alles zurück und behaupte das Gegenteil.

    Mit diesem hier
    Nachtrag:
    Zitat
    Code: PHP  [Auswählen]
    if (!FOO) { ...
    weil, wenn die Konstante mit einem leeren String definiert ist Boolean 'false' return-t wird.
    hast du mich allerdings unglücklich zitiert, oder nein, besser, ich habe mich unglücklich ausgedrückt.
    Ich meinte ja, daß es so ist:
    Code: PHP  [Auswählen]
    define('FOO', '');
    echo FOO ? 'FOO ist true' : 'FOO ist false<br />'; // ergibt: FOO ist false
    echo !FOO ? '!FOO ist true' : '!FOO ist false'; // ergibt: !FOO ist true
    Also die Frage if(FOO) würde false ergeben.

    Das konnte man eigtl. aus dem Kontext entnehmen
    ...
    Will man also abbfragen ob FOO ein leerer String ist ist das ursprüngliche
    Code: PHP  [Auswählen]
    if(SECURITY_CODE_LENGTH == '') { ...
    korrekt,
    oder eben einfach
    Code: PHP  [Auswählen]
    if (!FOO) { ...
    weil, wenn die Konstante mit einem leeren String definiert ist Boolean 'false' return-t wird.
    ...
    Ist aber meine Schuld, da ich nicht gesagt habe wann genau Boolean 'false' return-t wird
    (mal abgesehen von dem doppelten "b" bei "abbfragen" :-D).

    Und natürlich kann man eine definierte Konstante nicht überschreiben, habe gepennt gestern Abend.

    Gruß,
    noRiddle
    1 Antworten
    2239 Aufrufe
    02. Juni 2011, 12:14:05 von Tomcraft
    9 Antworten
    4130 Aufrufe
    02. März 2018, 10:26:29 von Timm
    2 Antworten
    2703 Aufrufe
    04. April 2016, 14:34:20 von webald
    0 Antworten
    1492 Aufrufe
    13. Januar 2014, 08:23:29 von webald