2017-01-09 4 views
1

Ich werde das umformulieren und erneut fragen, abgestimmt zu schließen.Ausrufezeichen vor ganzzahliger Variable php

+2

Du meinst genau das Gegenteil 'if ($ a <= 0) {'? – Koen

+0

Ich weiß, dass ich nicht der klügste Typ bin, aber ich finde deinen Code verwirrend. Ich frage mich, ob du mit einer Ausnahmesituation aus PHP umgehen willst (Null, leere Strings, Nullen, die sich als falsch verhalten).). –

+0

Ich stimme für das Schließen dieser Frage als Off-Topic, weil OP explizit darum gebeten hat. –

Antwort

1

Der! -Operator ist der nicht Operator von Boolean Algebra. PHP versucht, dynamische Instanziierung von Variablen zu ermöglichen.

In Ihrem Fall würde !$a>0 "(nicht $ a)> 0" ergeben. Die zweite wäre !($a>0) würde das Ergebnis von $a>0 verhandeln.

Beide Wege sind technisch gut (und könnte mehr Sinn als die anderen). Wenn Sie wirklich vermeiden wollen nicht nicht-Zahlen zu verhandeln, nur überprüfen, was Sie haben:

if (is_int($a) && !($a > 0)) { 
+0

Ich bin mir nicht sicher über den 'is_int()' Ansatz. Wenn Daten völlig falsch sind ("foo"), wird PHP selbst einen Fehler aufgrund des "int" -Typhinweises ausgeben. In anderen Fällen akzeptiert die Funktion keine Werte mehr, die sonst gültig wären ("123"). –

0

Sie brauchen nur eine sehr gute Modellierung. Wie andere gezeigt haben, muss die Person, die für die Definition der IF zuständig ist, nur gut in PHP sein. Abhängig davon, welche Logik dort implementiert werden muss, ist es Sache des Codierers, ob er eine separate Logik benötigt oder nicht, da $ variable> Zahl immer "wahr" oder "falsch" zurückgibt, schau auf die Implementierung von Michail Hirschler, es ist ein sehr gut.