2016-09-03 4 views
4

Zum Beispiel, wenn ichAssert zurückkehrt gilt unabhängig davon die Bedingung

assert('2<1'); 

haben Es stellt sich heraus, dass die Behauptung als wahr zurückgibt. Ich kopiere auch eingefügt Beispiel 2 von http://php.net/manual/en/function.assert.php und es bewertet auch jede einzelne Behauptung als wahr, wenn das eindeutig nicht der Fall ist. Irgendeine Idee, was das verursachen könnte?

Bearbeiten -

<?php 
    var_dump(assert('2<1')); 
?> 

Ausgang ist

true 

Wenn ich dies bei http://sandbox.onlinephpfunctions.com/ laufen, die Behauptung als erwartet ausfällt. Dies geschieht jedoch nicht auf meinem Testserver.

Edit # 2 - PHP Version:

PHP 7.0.9-1+deb.sury.org~trusty+1 (cli) (NTS) 
Copyright (c) 1997-2016 The PHP Group 
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies 
with Zend OPcache v7.0.9-1+deb.sury.org~trusty+1, Copyright (c) 1999-2016, by Zend Technologies 
+0

Kann nicht reproduziert werden. Ich bekomme eine Warnung dafür. Bitte lesen [mcve]. – Rizier123

+0

Ehrlich eine neue PHP-Datei mit Assert ('2 <1'); ist für mich vorbei. Wörtlich nur dieser Code. – zojwek

+0

Haben Sie versucht, den Server neu zu starten oder eine neue Datei zu erstellen und erneut zu schreiben? – Rizier123

Antwort

4

Assert die haben drei Einstellungen:

(ausüben aus der php.ini):

-1: Sie überhaupt nicht kompilieren
0: Übersprung zur Bestätigung zur Laufzeit
1: Assertions ausführen
...
http://php.net/zend.assertions

-1 wobei „Produktion“, 1 Entwicklung und Null ist eine ungerade mittleren Boden zu sein, die wie die Produktion zu handeln scheint.

Scheinbar im Nicht-Entwicklungsmodus bedeutet dies, dass assert immer wahr zurückgibt und die Prüfung effektiv umgeht.

Verwandte Themen