{"id":151,"date":"2010-10-31T18:34:59","date_gmt":"2010-10-31T17:34:59","guid":{"rendered":"https:\/\/d-mueller.de\/blog\/?p=151"},"modified":"2016-01-11T23:01:41","modified_gmt":"2016-01-11T22:01:41","slug":"quicktip-integer-validation","status":"publish","type":"post","link":"https:\/\/d-mueller.de\/blog\/quicktip-integer-validation\/","title":{"rendered":"Quicktip: Integer Validation"},"content":{"rendered":"<p>Oft ist es ja so, dass man einen Integer validieren m\u00f6chte, der allerdings als String vorliegt (bei SOAP z.B.). Das hei\u00dft, dass uns <i>is_int<\/i> nicht weiterhilft, wie folgender Schnippsel zeigt:<\/p>\n<pre data-enlighter-language=\"php\" class=\"EnlighterJSRAW\">\r\nvar_dump(is_int(&quot;12&quot;)); \/\/false\r\n<\/pre>\n<p>Klar, ist kein int &#8211; kann man PHP keinen Strick draus drehen. Alternative ist <i>is_numeric<\/i>. <\/p>\n<pre data-enlighter-language=\"php\" class=\"EnlighterJSRAW\">\r\nvar_dump(is_numeric(&quot;12&quot;)); \/\/true\r\n<\/pre>\n<p>Ah, wunderbar &#8211; warum auch immer jetzt auf einmal Strings kein Problem mehr darstellen. <b>Aber:<\/b><\/p>\n<pre data-enlighter-language=\"php\" class=\"EnlighterJSRAW\">\r\nvar_dump(is_numeric(&quot;12.123456&quot;)); \/\/true\r\n<\/pre>\n<p>Klar irgendwie, &#8222;numeric&#8220; hei\u00dft nicht zwangsl\u00e4ufig gerade. Deswegen (meines Erachtens nach der beste Weg): <b>intval<\/b><\/p>\n<p>intval konvertiert (sofern m\u00f6glich, also wenn etwa ein int in einem String vorliegt) zu Integer, allerdings kommt bei allen anderen Inputs (bspw. &#8222;wirkliche&#8220; Strings) 0 raus. intval schneidet von Kommazahlen die Nachkommastellen ab. Mein Ansatz w\u00fcrde dann also so aussehen:<\/p>\n<pre data-enlighter-language=\"php\" class=\"EnlighterJSRAW\">\r\n$number = 12.123456;\r\ndoStuff($number);\r\n\r\nfunction doStuff($number)\r\n{\r\n    $number = intval($number);\r\n    if ($number &gt; 0) { \/* doStuff *\/ }\r\n}\r\n<\/pre>\n<p>Es ist halt trotz allem genau abzuw\u00e4gen, ob das &#8222;wegcasten&#8220; eventueller Nachkommastellen im jeweiligen Anwendungsfall okay ist.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Oft ist es ja so, dass man einen Integer validieren m\u00f6chte, der allerdings als String vorliegt (bei SOAP z.B.). Das hei\u00dft, dass uns is_int nicht weiterhilft, wie folgender Schnippsel zeigt: var_dump(is_int(&quot;12&quot;)); \/\/false Klar, ist kein int &#8211; kann man PHP &hellip; <a href=\"https:\/\/d-mueller.de\/blog\/quicktip-integer-validation\/\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,6,8,3],"tags":[],"class_list":["post-151","post","type-post","status-publish","format-standard","hentry","category-php","category-security","category-quicktips","category-webdev"],"_links":{"self":[{"href":"https:\/\/d-mueller.de\/blog\/wp-json\/wp\/v2\/posts\/151","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/d-mueller.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/d-mueller.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/d-mueller.de\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/d-mueller.de\/blog\/wp-json\/wp\/v2\/comments?post=151"}],"version-history":[{"count":0,"href":"https:\/\/d-mueller.de\/blog\/wp-json\/wp\/v2\/posts\/151\/revisions"}],"wp:attachment":[{"href":"https:\/\/d-mueller.de\/blog\/wp-json\/wp\/v2\/media?parent=151"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/d-mueller.de\/blog\/wp-json\/wp\/v2\/categories?post=151"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/d-mueller.de\/blog\/wp-json\/wp\/v2\/tags?post=151"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}