<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Sadly, PHP warning system doesn't work that way:</p>
    <p>----</p>
    <p><?php<br>
      error_reporting(-1);<br>
      ini_set('display_errors', 1);<br>
      <br>
      if ($nothere) {<br>
          echo "it is here";<br>
      } else {<br>
          echo "it isn't here";<br>
      }<br>
      -----</p>
    <p>result</p>
    <p>-----<br>
    </p>
    <p>joe@linuxmint:/var/www/coreBOSTest$ php k.php <br>
      PHP Notice:  Undefined variable: nothere in
      /var/www/coreBOSTest/k.php on line 5<br>
      PHP Stack trace:<br>
      PHP   1. {main}() /var/www/coreBOSTest/k.php:0<br>
      <br>
      Notice: Undefined variable: nothere in /var/www/coreBOSTest/k.php
      on line 5<br>
      <br>
      Call Stack:<br>
          0.0001     393600   1. {main}() /var/www/coreBOSTest/k.php:0<br>
      <br>
      it isn't here<br>
    </p>
    <p>------<br>
    </p>
    <p><br>
    </p>
    <p>so you get the warning if the variable is not defined which is
      what you are trying to avoid</p>
    <p><br>
    </p>
    <p><br>
    </p>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 5/5/21 17:04, Sukhdev Mohan wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:BB1184C6-8802-4244-A055-2AC007F81334@myti.it">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <blockquote type="cite" class="">
        <blockquote type="cite" class="">if ($variableList) {<br
            class="">
        </blockquote>
        <br class="">
        would provide the same result? To me that simple if($var)
        statement says, "if $var is not equal to a boolean false, or 0,
        or null then continue"...</blockquote>
      <div class=""><br class="">
      </div>
      Yup, $var = [] is still 0 so it’s a falsy value (love the C based
      programming languages).
      <div class=""><br class="">
      </div>
      <div class="">I’d like to propose, let’s anticipate the rejection
        instead of nested ifs for the expected values (normally ifs
        should be used to handle exceptions not for the basic
        functionalities), like this:</div>
      <div class=""><br class="">
      </div>
      <div class=""><font style="background-color: rgb(255, 255, 236);"
          class="" face="Menlo">If(!$var) { // check what will break the
          code</font></div>
      <div class=""><font style="background-color: rgb(255, 255, 236);"
          class="" face="Menlo">    // reject statement and exit routine</font></div>
      <div class=""><font style="background-color: rgb(255, 255, 236);"
          class="" face="Menlo">}</font></div>
      <div class=""><font style="background-color: rgb(255, 255, 236);"
          class="" face="Menlo"><br class="">
        </font></div>
      <div class=""><font style="background-color: rgb(255, 255, 236);"
          class="" face="Menlo">// continue the normal flow</font></div>
      <div class=""><br class="">
      </div>
      <div class="">This would also improve readability as it’s short
        and you immediately see what can cause a break.</div>
      <div class=""><br class="">
        <div class="">
          <div dir="auto" style="caret-color: rgb(0, 0, 0); color:
            rgb(0, 0, 0); letter-spacing: normal; text-align: start;
            text-indent: 0px; text-transform: none; white-space: normal;
            word-spacing: 0px; -webkit-text-stroke-width: 0px;
            text-decoration: none; word-wrap: break-word;
            -webkit-nbsp-mode: space; line-break: after-white-space;"
            class="">
            <div dir="auto" style="caret-color: rgb(0, 0, 0); color:
              rgb(0, 0, 0); letter-spacing: normal; text-align: start;
              text-indent: 0px; text-transform: none; white-space:
              normal; word-spacing: 0px; -webkit-text-stroke-width: 0px;
              text-decoration: none; word-wrap: break-word;
              -webkit-nbsp-mode: space; line-break: after-white-space;"
              class="">
              <div dir="auto" style="caret-color: rgb(0, 0, 0); color:
                rgb(0, 0, 0); letter-spacing: normal; text-align: start;
                text-indent: 0px; text-transform: none; white-space:
                normal; word-spacing: 0px; -webkit-text-stroke-width:
                0px; text-decoration: none; word-wrap: break-word;
                -webkit-nbsp-mode: space; line-break:
                after-white-space;" class="">
                <div dir="auto" style="caret-color: rgb(0, 0, 0); color:
                  rgb(0, 0, 0); letter-spacing: normal; text-align:
                  start; text-indent: 0px; text-transform: none;
                  white-space: normal; word-spacing: 0px;
                  -webkit-text-stroke-width: 0px; text-decoration: none;
                  word-wrap: break-word; -webkit-nbsp-mode: space;
                  line-break: after-white-space;" class="">
                  <div dir="auto" style="caret-color: rgb(0, 0, 0);
                    color: rgb(0, 0, 0); letter-spacing: normal;
                    text-align: start; text-indent: 0px; text-transform:
                    none; white-space: normal; word-spacing: 0px;
                    -webkit-text-stroke-width: 0px; text-decoration:
                    none; word-wrap: break-word; -webkit-nbsp-mode:
                    space; line-break: after-white-space;" class="">
                    <div>Best Regards,<br class="">
                      <b class="">Sukhdev Mohan</b> | <b class="">Software Developer</b></div>
                  </div>
                  <br class="Apple-interchange-newline">
                </div>
                <br class="Apple-interchange-newline">
              </div>
              <br class="Apple-interchange-newline">
            </div>
            <br class="Apple-interchange-newline">
          </div>
          <br class="Apple-interchange-newline">
          <br class="Apple-interchange-newline">
        </div>
        <div><br class="">
          <blockquote type="cite" class="">
            <div class="">Il giorno 5 mag 2021, alle ore 16:14, Alan
              Lord <<a href="mailto:alanslists@gmail.com" class=""
                moz-do-not-send="true">alanslists@gmail.com</a>> ha
              scritto:</div>
            <br class="Apple-interchange-newline">
            <div class="">
              <div class="">In the fairly recent past there have been a
                number of minor commits made which, I guess, are to help
                prevent php WARNING and/or NOTICE type messages, e.g.<br
                  class="">
                <br class="">
                Something like this:<br class="">
                <br class="">
                <blockquote type="cite" class="">if
                  (count($variableList) > 0) {<br class="">
                </blockquote>
                <br class="">
                became this:<br class="">
                <br class="">
                <blockquote type="cite" class="">if
                  (!empty($variableList) &&
                  (count($variableList) > 0)) {<br class="">
                </blockquote>
                <br class="">
                But this seem to be overkill...<br class="">
                <br class="">
                As I understand things simply doing this:<br class="">
                <br class="">
                <blockquote type="cite" class="">if ($variableList) {<br
                    class="">
                </blockquote>
                <br class="">
                would provide the same result? To me that simple
                if($var) statement says, "if $var is not equal to a
                boolean false, or 0, or null then continue"...<br
                  class="">
                <br class="">
                count($var) would return an integer if $var is a string,
                so it is not a useful explicit test for an array.<br
                  class="">
                <br class="">
                And from the php manual, empty($var) says "a variable is
                considered empty if it does not exist or if its value
                equals false"<br class="">
                <br class="">
                <br class="">
                Thoughts / Comments?<br class="">
                <br class="">
                <br class="">
                Al<br class="">
                <br class="">
                _______________________________________________<br
                  class="">
                <a href="http://www.vtiger.com/" class=""
                  moz-do-not-send="true">http://www.vtiger.com/</a><br
                  class="">
              </div>
            </div>
          </blockquote>
        </div>
        <br class="">
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <pre class="moz-quote-pre" wrap="">_______________________________________________
<a class="moz-txt-link-freetext" href="http://www.vtiger.com/">http://www.vtiger.com/</a></pre>
    </blockquote>
    <pre class="moz-signature" cols="72">-- 
Un saludo
Joe
TSolucio

JPL TSolució, S.L. garantiza la confidencialidad de los datos que obran en su poder y según lo estipulado por la LOPD 
(Ley Orgánica 15/1999 de 13 de diciembre de Protección de Datos de Carácter Personal). Este mensaje se dirige 
exclusivamente a su destinatario y puede contener información privilegiada o confidencial. Si no es vd. el destinatario 
indicado, queda notificado de que la lectura, utilización, divulgación y/o copia sin autorización está prohibida en 
virtud de la legislación vigente. Si ha recibido este mensaje por error, le rogamos que nos lo comunique inmediatamente 
por esta misma vía y proceda a su destrucción. El correo electrónico vía Internet no permite asegurar la confidencialidad 
de los mensajes que se transmiten ni su integridad o correcta recepción. JPL TSolució, S.L. no asume ninguna 
responsabilidad por estas circunstancias.</pre>
  </body>
</html>