function.assert.html
7.43 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
<!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ü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> — <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"><?php<br /></span><span style="color: #FF8000">// Active assert and make it quiet<br /></span><span style="color: #0000BB">assert_options </span><span style="color: #007700">(</span><span style="color: #0000BB">ASSERT_ACTIVE</span><span style="color: #007700">, </span><span style="color: #0000BB">1</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">assert_options </span><span style="color: #007700">(</span><span style="color: #0000BB">ASSERT_WARNING</span><span style="color: #007700">, </span><span style="color: #0000BB">0</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">assert_options </span><span style="color: #007700">(</span><span style="color: #0000BB">ASSERT_QUIET_EVAL</span><span style="color: #007700">, </span><span style="color: #0000BB">1</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">// Create a handler function<br /></span><span style="color: #007700">function </span><span style="color: #0000BB">my_assert_handler </span><span style="color: #007700">(</span><span style="color: #0000BB">$file</span><span style="color: #007700">, </span><span style="color: #0000BB">$line</span><span style="color: #007700">, </span><span style="color: #0000BB">$code</span><span style="color: #007700">) {<br /> echo </span><span style="color: #DD0000">"<hr>Assertion Failed:<br /> File '</span><span style="color: #0000BB">$file</span><span style="color: #DD0000">'<br><br /> Line '</span><span style="color: #0000BB">$line</span><span style="color: #DD0000">'<br><br /> Code '</span><span style="color: #0000BB">$code</span><span style="color: #DD0000">'<br><hr>"</span><span style="color: #007700">;<br />}<br /><br /></span><span style="color: #FF8000">// Set up the callback<br /></span><span style="color: #0000BB">assert_options </span><span style="color: #007700">(</span><span style="color: #0000BB">ASSERT_CALLBACK</span><span style="color: #007700">, </span><span style="color: #DD0000">'my_assert_handler'</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">// Make an assertion that should fail<br /></span><span style="color: #0000BB">assert </span><span style="color: #007700">(</span><span style="color: #DD0000">'mysql_query ("")'</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?></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>