<?php
/**
 * Many changes have been made in this file.
 * By Pierre-Henry SORIA.
 */

namespace PFBC;

use PH7\Framework\Security\Validate\Validate;

abstract class Validation extends Base
{
    protected $oValidate, $message;

    public function __construct($message = '')
    {
        $this->oValidate = new Validate;

        if (!empty($message)) {
            $this->message = t('%element% is invalid.');
          }
    }

    public function getMessage()
    {
        return $this->message;
    }

    public function isNotApplicable($value)
    {
        return ($value === null || is_array($value) || $value === '');
    }

    public abstract function isValid($value);
}

<?php
/**
 * Many changes have been made in this file.
 * By Pierre-Henry SORIA.
 */

namespace PFBC;

use PH7\Framework\Security\Validate\Validate;

abstract class Validation extends Base
{
    protected $oValidate, $message;

    public function __construct($message = '')
    {
        $this->oValidate = new Validate;

        if (!empty($message)) {
            $this->message = t('%element% is invalid.');
          }
    }

    public function getMessage()
    {
        return $this->message;
    }

    public function isNotApplicable($value)
    {
        return (is_null($value) || is_array($value) || $value === '');
    }

    public abstract function isValid($value);
}

--- 
+++ 
@@ -28,7 +28,7 @@
 
     public function isNotApplicable($value)
     {
-        return (is_null($value) || is_array($value) || $value === '');
+        return ($value === null || is_array($value) || $value === '');
     }
 
     public abstract function isValid($value);
[Optimization:Speed] Replace is_null with strict identical operator
