function.assert.html 7.43 KB
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  <title>Pr&uuml;ft ab, ob eine Bedingung oder Abfrage FALSE ist</title>

 </head>
 <body><div class="manualnavbar" style="text-align: center;">
 <div class="prev" style="text-align: left; float: left;"><a href="function.assert-options.html">assert_options</a></div>
 <div class="next" style="text-align: right; float: right;"><a href="function.cli-get-process-title.html">cli_get_process_title</a></div>
 <div class="up"><a href="ref.info.html">PHP-Optionen-/-Informationen-Funktionen</a></div>
 <div class="home"><a href="index.html">PHP Manual</a></div>
</div><hr /><div id="function.assert" class="refentry">
   <div class="refnamediv">
    <h1 class="refname">assert</h1>
    <p class="verinfo">(PHP 4, PHP 5)</p><p class="refpurpose"><span class="refname">assert</span> &mdash; <span class="dc-title">
     Prüft ab, ob eine Bedingung oder Abfrage <strong><code>FALSE</code></strong> ist
    </span></p>

   </div>
   <div class="refsect1 unknown-unknown-seealsq" id="refsect1-function.assert-unknown-unknown-seealsq">
    <h3 class="title">Beschreibung</h3>
     <div class="methodsynopsis dc-description">
      <span class="type">int</span> <span class="methodname"><strong>assert</strong></span>
       ( <span class="methodparam"><span class="type"><span class="type string|bool">string|bool</span></span> <code class="parameter">$assertion</code></span>
      )</div>

    <p class="para rdfs-comment">
     <span class="function"><strong>assert()</strong></span> überprüft den übergebenen Parameter
     <code class="parameter">assertion</code> und führt ein über die Funktion
     <span class="function"><a href="function.assert-options.html" class="function">assert_options()</a></span> definiertes Ereignis aus,
     falls die in <code class="parameter">assertion</code> spezifizierte Bedingung <strong><code>FALSE</code></strong>
     ist.
    </p>
    <p class="para">
     Wird der Parameter <code class="parameter">assertion</code> als String
     übergeben, so wird der String als PHP-Code interpretiert.  Der
     Vorteil der Übergabe des Parameters
     <code class="parameter">assertion</code> als Zeichenkette liegt darin,
     dass die ausgegebene Meldung die über
     <code class="parameter">assertion</code> übergebene Zeichenkette enthält.
    </p>
    <p class="para">
     <span class="function"><strong>assert()</strong></span> sollte nur zum Debuggen des Codes
     und nicht in Produktionsumgebungen verwendet werden werden, 
     beispielsweise zur Überprüfung von Eingaben.
    </p>
    <p class="para">
     Die Optionen für die <span class="function"><strong>assert()</strong></span> können über die
     Funktion <span class="function"><a href="function.assert-options.html" class="function">assert_options()</a></span> oder in den
     Einstellungen der .ini-Datei gesetzt werden.
    </p>
    <p class="para">
     Die Funktion <span class="function"><a href="function.assert-options.html" class="function">assert_options()</a></span> mit der
     ASSERT_CALLBACK Direktive ermöglicht eine Funktion anzugeben, die
     bei fehlender Überprüfung aufgerufen wird.
    </p>
    <p class="para">
     Callback-Funktionen in Zusammenhang mit
     <span class="function"><strong>assert()</strong></span> sind nützlich, um beispielsweise
     automatisierte Tests durchzuführen, da die Callback-Funktion über
     die Information verfügt, von welcher Stelle sie aufgerufen wurde.
    </p>
    <p class="para">
     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
     <code class="parameter">assertion</code> angegebene Bedingung.
    </p>
    <p class="para">
     <div class="example" id="example-434">
      <p><strong>Beispiel #1 Überprüfung mit benutzerdefinierter Funktion</strong></p>
      <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000">
<span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">//&nbsp;Active&nbsp;assert&nbsp;and&nbsp;make&nbsp;it&nbsp;quiet<br /></span><span style="color: #0000BB">assert_options&nbsp;</span><span style="color: #007700">(</span><span style="color: #0000BB">ASSERT_ACTIVE</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">assert_options&nbsp;</span><span style="color: #007700">(</span><span style="color: #0000BB">ASSERT_WARNING</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">0</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">assert_options&nbsp;</span><span style="color: #007700">(</span><span style="color: #0000BB">ASSERT_QUIET_EVAL</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">1</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">//&nbsp;Create&nbsp;a&nbsp;handler&nbsp;function<br /></span><span style="color: #007700">function&nbsp;</span><span style="color: #0000BB">my_assert_handler&nbsp;</span><span style="color: #007700">(</span><span style="color: #0000BB">$file</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$line</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">$code</span><span style="color: #007700">)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;echo&nbsp;</span><span style="color: #DD0000">"&lt;hr&gt;Assertion&nbsp;Failed:<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;File&nbsp;'</span><span style="color: #0000BB">$file</span><span style="color: #DD0000">'&lt;br&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Line&nbsp;'</span><span style="color: #0000BB">$line</span><span style="color: #DD0000">'&lt;br&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Code&nbsp;'</span><span style="color: #0000BB">$code</span><span style="color: #DD0000">'&lt;br&gt;&lt;hr&gt;"</span><span style="color: #007700">;<br />}<br /><br /></span><span style="color: #FF8000">//&nbsp;Set&nbsp;up&nbsp;the&nbsp;callback<br /></span><span style="color: #0000BB">assert_options&nbsp;</span><span style="color: #007700">(</span><span style="color: #0000BB">ASSERT_CALLBACK</span><span style="color: #007700">,&nbsp;</span><span style="color: #DD0000">'my_assert_handler'</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">//&nbsp;Make&nbsp;an&nbsp;assertion&nbsp;that&nbsp;should&nbsp;fail<br /></span><span style="color: #0000BB">assert&nbsp;</span><span style="color: #007700">(</span><span style="color: #DD0000">'mysql_query&nbsp;("")'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?&gt;</span>
</span>
</code></div>
      </div>

     </div>
    </p>
   </div>

  </div><hr /><div class="manualnavbar" style="text-align: center;">
 <div class="prev" style="text-align: left; float: left;"><a href="function.assert-options.html">assert_options</a></div>
 <div class="next" style="text-align: right; float: right;"><a href="function.cli-get-process-title.html">cli_get_process_title</a></div>
 <div class="up"><a href="ref.info.html">PHP-Optionen-/-Informationen-Funktionen</a></div>
 <div class="home"><a href="index.html">PHP Manual</a></div>
</div></body></html>