[Vtigercrm-developers] A question on efficiency/semantics...
Joe Bordes
joe at tsolucio.com
Wed May 5 15:24:37 GMT 2021
Sadly, PHP warning system doesn't work that way:
----
<?php
error_reporting(-1);
ini_set('display_errors', 1);
if ($nothere) {
echo "it is here";
} else {
echo "it isn't here";
}
-----
result
-----
joe at linuxmint:/var/www/coreBOSTest$ php k.php
PHP Notice: Undefined variable: nothere in /var/www/coreBOSTest/k.php
on line 5
PHP Stack trace:
PHP 1. {main}() /var/www/coreBOSTest/k.php:0
Notice: Undefined variable: nothere in /var/www/coreBOSTest/k.php on line 5
Call Stack:
0.0001 393600 1. {main}() /var/www/coreBOSTest/k.php:0
it isn't here
------
so you get the warning if the variable is not defined which is what you
are trying to avoid
On 5/5/21 17:04, Sukhdev Mohan wrote:
>>> if ($variableList) {
>>
>> 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"...
>
> Yup, $var = [] is still 0 so it’s a falsy value (love the C based
> programming languages).
>
> 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:
>
> If(!$var) { // check what will break the code
> // reject statement and exit routine
> }
>
> // continue the normal flow
>
> This would also improve readability as it’s short and you immediately
> see what can cause a break.
>
> Best Regards,
> *Sukhdev Mohan* | *Software Developer*
>
>
>
>
>
>
>
>> Il giorno 5 mag 2021, alle ore 16:14, Alan Lord <alanslists at gmail.com
>> <mailto:alanslists at gmail.com>> ha scritto:
>>
>> 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.
>>
>> Something like this:
>>
>>> if (count($variableList) > 0) {
>>
>> became this:
>>
>>> if (!empty($variableList) && (count($variableList) > 0)) {
>>
>> But this seem to be overkill...
>>
>> As I understand things simply doing this:
>>
>>> if ($variableList) {
>>
>> 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"...
>>
>> count($var) would return an integer if $var is a string, so it is not
>> a useful explicit test for an array.
>>
>> And from the php manual, empty($var) says "a variable is considered
>> empty if it does not exist or if its value equals false"
>>
>>
>> Thoughts / Comments?
>>
>>
>> Al
>>
>> _______________________________________________
>> http://www.vtiger.com/ <http://www.vtiger.com/>
>
>
> _______________________________________________
> http://www.vtiger.com/
--
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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.vtigercrm.com/pipermail/vtigercrm-developers/attachments/20210505/f72ce3e3/attachment-0001.html>
More information about the vtigercrm-developers
mailing list