Du bist hier: Tips » Scripte » PHP
PHP
Referenzliste

assert

PHP-Informationen

    Befehl:
bool assert ( mixed $assertion [, string $description ] )


    Parameter-Liste:
NameBeschreibung
assertionDie Behauptung.
descriptionEine optionale Beschreibung, die in der Fehlermeldung enthalten sein werden, wenn die Assertion fehlschlägt.

    Beschreibung:
assert() überprüft den übergebenen Parameter assertion und führt ein über die Funktion assert_options() definiertes Ereignis aus, falls die in assertion spezifizierte Bedingung FALSE ist.

Wird der Parameter assertion als String übergeben, so wird der String als PHP-Code interpretiert. Der Vorteil der Übergabe des Parameters assertion als Zeichenkette liegt darin, dass die ausgegebene Meldung die über assertion übergebene Zeichenkette enthält.

assert() sollte nur zum Debuggen des Codes und nicht in Produktionsumgebungen verwendet werden werden, beispielsweise zur Überprüfung von Eingaben.

Die Optionen für die assert() können über die Funktion assert_options() oder in den Einstellungen der .ini-Datei gesetzt werden.

Die Funktion assert_options() mit der ASSERT_CALLBACK Direktive ermöglicht eine Funktion anzugeben, die bei fehlender Überprüfung aufgerufen wird.

Callback-Funktionen in Zusammenhang mit assert() sind nützlich, um beispielsweise automatisierte Tests durchzuführen, da die Callback-Funktion über die Information verfügt, von welcher Stelle sie aufgerufen wurde.

Die Callback-Funktion wird mit drei Parametern aufgerufen. Der erste Parameter enthält den Namen des Scripts, in dem die Überprüfung statt fand, der zweite Parameter die Zeilennummer, und der dritte Paramter enthält die über assertion angegebene Bedingung.


    Aktiv in Version:
(PHP 4, PHP 5, PHP 7)

    Siehe auch:
Set / erhalten die Assert-Optionen
 

assert() - Beispiel: Überprüfung mit benutzerdefinierter Funktion


Eingabe:
<?php
// Aktive geltend zu machen und machen es ruhig
assert_options (ASSERT_ACTIVE, 1);
assert_options (ASSERT_WARNING, 0);
assert_options (ASSERT_QUIET_EVAL, 1);

// Erstellt einen Handler-Funktion
function my_assert_handler ($file, $line, $code) {
    echo "<hr>Assertion Failed:
        File '$file'<br>
        Line '$line'<br>
        Code '$code'<br><hr>";
}

// Richtet den Rückruf
assert_options (ASSERT_CALLBACK, 'my_assert_handler');

// Macht eine Aussage, die ausfallen sollte
assert ('mysql_query ("")');
?>


Beschreibung:
Version Beschreibung
5.4.8 Die description-Parameter hinzugefügt. Die description ist jetzt auch auf eine Callback-Funktion in ASSERT_CALLBACK-Modus als viertes Argument bereitgestellt .
assert() - Beispiel 2:


Eingabe:
<?php

    /**
     * Set Assertion Debug
     *
     * Diese Methode prüft die gegebene Behauptung und geeignete -
     * Aktion, wenn das Ergebnis ist FALSE.
     *
     * Diese Datei ist Teil des Rahmenprogramms Ikac(.
     *
     * @package Ikac Framework
     * @author Ivan Stojmenovic Ikac <contact.@stojmenovic.info>
     *
     * @param mixed $assertion  Die Behauptung.
     * @param mixed $callback   Rückruf auf fehlgeschlagenen Aussagen ausgeführt
     * @param array $options    Stellen Sie die verschiedenen Steuerungsmöglichkeiten
     *                          oder einfach nur ihre aktuellen Einstellungen abfragen.
     * @param string $description  Eine optionale Beschreibung, die in der Fehlermeldung
     *                          enthalten sein werden, wenn die Assertion fehlschlägt.
     */
    public function setAssertionDebug($assertion, $callback, array $options, $description = null)
    {
        if (is_array($options)) {
            foreach ($options AS $option => $value) {
                assert_options($option, $value);
            }
        }
        if ($callback) {
            assert_options(ASSERT_CALLBACK, $callback);
        }

        return assert($assertion, $description);
    }
?>

Wie zu verwenden:
<?php
      use Ikac\Component\SystemBehaviour\OptionsInfo;

      $system = new OptionsInfo();

      $option = array(ASSERT_ACTIVE => 1,ASSERT_WARNING => 0,ASSERT_QUIET_EVAL => 1);

     $system->setAssertionDebug('2<1', function(){
            echo "Assertion failed";
     }, $option);

?>


Beschreibung:
Version Beschreibung
5.4.8 Die description-Parameter hinzugefügt. Die description ist jetzt auch auf eine Callback-Funktion in ASSERT_CALLBACK-Modus als viertes Argument bereitgestellt .
assert() - Beispiel 3:


Eingabe:
<?php
//////////////////////////////////////////////////////////////////////
/// phpxAssertHandler_f
//////////////////////////////////////////////////////////////////////
/**
 * @desc     Handler, die richtet auch behaupten Optionen, wenn nicht als Handler aufgerufen wird
                 Immer tödlich, wenn Assertion schlägt fehl
                 Achten Sie immer darauf Behauptung ist aktiviert
                 Kann nicht auf anderen Code hängen nicht mit zu machen oder mit ihren eigenen behaupten Handler!
            USAGE:
// gestalten Fehler Niveau Behauptung (php assert_options () erlaubt nur E_WARNING oder überhaupt nichts):
   phpxAssertHandler_f(E_USER_NOTICE);
// Kontrolle Behauptung aktiven Zustand: nichts abhängig weiteres Stück Code könnte mit ASSERT_ACTIVE tun
   $ GLOBALS ['MY_ASSERT_ACTIVE'] = false;
   phpxAssertHandler_f(E_USER_NOTICE,$GLOBALS['MY_ASSERT_ACTIVE']);
// verwenden alternate Behauptung Callback-Funktion:
// HINWEIS: pass null als benutzerdefinierte Optionen Parameter auf Standard-Optionen verwenden
// HINWEIS: pass keine Werte für behaupten options-Parameter Array-Elemente zu Standard-Optionen verwenden
                $GLOBALS['MY_ASSERT_ACTIVE']=false;
                $GLOBALS['MY_ASSERT_CALLBACK']='myAssertCallback';
                phpxAssertHandler_f(
                    null,
                    array(
                        0=>$GLOBALS['MY_ASSERT_ACTIVE'],
                        3=>$GLOBALS['MY_ASSERT_CALLBACK'],
                    )
                );

 * @param   mixed = file or options
 * @param   line
 * @param   code
 * @return   void
 */
function phpxAssertHandler_f($file_or_custom_options=null, $line_or_assert_options=null, $code=null){

    static $custom_options;
    $debug = false;

    if (is_null($code)){
        // set default assert_options
        $assert_options[]=1;//ASSERT_ACTIVE
        $assert_options[]=0;//ASSERT_WARNING -
        $assert_options[]=0;//ASSERT_QUIET_EVAL
        $assert_options[]=__FUNCTION__;//ASSERT_CALLBACK

        // set default custom_options
        $custom_options[]=E_USER_ERROR;// error level

        if (!is_null($line_or_assert_options)){
            // assert_options werden übergeben
            if (!is_array($line_or_assert_options)){
                $line_or_assert_options=array($line_or_assert_options);
            }
            foreach ($line_or_assert_options as $i=>$assert_option){
                if ($assert_option===true) $assert_option=1;
                if ($assert_option===false) $assert_option=0;
                $assert_options[$i]=$assert_option;
                if($debug) echo ("assert_options[$i]=$assert_option\n");
            }
        }

        if (!is_null($file_or_custom_options)){
            // custom_options werden übergeben
            if (!is_array($file_or_custom_options)){
                $file_or_custom_options=array($file_or_custom_options);
            }
            foreach ($file_or_custom_options as $i=>$custom_option){
                if ($custom_option===true) $custom_option=1;
                if ($custom_option===false) $custom_option=0;
                $custom_options[$i]=$custom_option;
                if($debug) echo ("custom_options[$i]=$custom_option\n");
            }
        }

        // gesetzt behaupten Optionen
        @assert_options (ASSERT_ACTIVE, $assert_options[0]);
        @assert_options (ASSERT_WARNING, $assert_options[1]);
        @assert_options (ASSERT_QUIET_EVAL, $assert_options[2]);
        @assert_options (ASSERT_CALLBACK, $assert_options[3]);

    } else {
    // sind wir als Callback-Funktion handeln
        $file = $file_or_custom_options;
        $line = $line_or_assert_options;
        $msg="ASSERTION FAILED: $code";
        phpxErrorHandler_f ($custom_options[0],$msg,$file,$line);
    }
}//phpxAssertHandler_f()
?>


Beschreibung:
Version Beschreibung
5.4.8 Die description-Parameter hinzugefügt. Die description ist jetzt auch auf eine Callback-Funktion in ASSERT_CALLBACK-Modus als viertes Argument bereitgestellt .
assert() - Beispiel 4:


Eingabe:
<?php

assert_options(ASSERT_ACTIVE, 1);
assert_options(ASSERT_WARNING, 0);
assert_options(ASSERT_BAIL, 1);
assert_options(ASSERT_CALLBACK, 'dcb_callback');

function dcb_callback($script, $line, $message) {
    echo "<h1>Condition failed!</h1><br />
        Script: <strong>$script</strong><br />
        Line: <strong>$line</strong><br />
        Condition: <br /><pre>$message</pre>";
}

// Parameters
$a = 5;
$b = 'Simple DCB with PHP';

// Pre-Condition
assert('
    is_integer($a) &&
    ($a > 0) &&
    ($a < 20) &&

    is_string($b) &&
    (strlen($b) > 5);
');

// Function
function combine($a, $b) {
    return "Kombined: " . $b . $a;
}

$result = combine($a, $b);

// Post-Condition
assert('
    is_string($result) &&
    (strlen($result) > 0);
');

// Alles klar, funktioniert die Funktion feinen
var_dump($result);

?>


Beschreibung:
Version Beschreibung
5.4.8 Die description-Parameter hinzugefügt. Die description ist jetzt auch auf eine Callback-Funktion in ASSERT_CALLBACK-Modus als viertes Argument bereitgestellt .
PHP-Informationen