[Frage] boolean / Tinyint(1) erzeugt keine Ausgabe bei false

  • harald1972 harald197...
    Sternenflotten-Admiral
    0 x
    198 Beiträge
    13 Hilfreiche Beiträge
    22. 10. 2013, 02:11

    Seltsame Sache,

    bei folgendem Szenario erhalte ich eine merkwürdige Ausgabe.

    Ich habe ein Objekt mit einer Boolschen Variable.
    Mit dem ExtensionBuilder angelegt, erhalte ich (vereinfacht) diese Klasse

    1. class Foo extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity{
    2. /**
    3.  * @var boolean
    4.  */
    5. protected $bar
    6. ...
    7. /**
    8.  * @return boolean $bar
    9.  */
    10. public function getBar() {
    11. return $this->bar;
    12. }
    13. }

    MySql verwendet dafür einen Tinyint(1).
    Ich kann damit umgehen, wie mit einer Boolschen Variable, oder mit jedem anderen Integer, wenn ich ihn wahr/falsch prüfe.
    Allerdings erzeugt mir die reine Ausgabe im fluid-Template

    1. {foo.bar}

    eine 1, wenn es wahr ist (und in der DB eben diese 1 steht)
    ABER !!! ich erhalte KEINE Ausgabe, wenn es falsch ist (in der DB steht 0).

    o.O

    Kann mir das mal jemand erklären?


  • 1
  • kainobi kainobi
    Jedi-Ritter
    0 x
    141 Beiträge
    0 Hilfreiche Beiträge
    23. 10. 2013, 13:49

    Ich glaube das liegt daran, wie PHP damit umgeht, wenn man Booleans als String ausgibt:

    print true;
    -> Ergebnis: 1

    print false;
    -> Ergebnis:

  • harald1972 harald197...
    Sternenflotten-Admiral
    0 x
    198 Beiträge
    13 Hilfreiche Beiträge
    21. 01. 2014, 15:18

    Du sagst,

    wenn man Booleans als String ausgibt

    Kann ich den Boolean als Boolean ausgeben?
    Und wenn ja, dann wie? Außer mit if/else-Konstrukt drumrum.

  • 1