{"id":1157,"date":"2018-02-28T23:57:25","date_gmt":"2018-02-28T23:57:25","guid":{"rendered":"http:\/\/blog.datentraeger.li\/?p=1157"},"modified":"2018-03-01T00:08:29","modified_gmt":"2018-03-01T00:08:29","slug":"versioncmp","status":"publish","type":"post","link":"https:\/\/blog.datentraeger.li\/?p=1157","title":{"rendered":"versioncmp"},"content":{"rendered":"<p>Ganz zu Beginn: das ganze hab ich eigentlich nur aus <a href=\"http:\/\/www.moeding.net\/archives\/76-Puppet-versioncmp-mnemonic.html\" target=\"_blank\" rel=\"noopener\">diesem Blog<\/a> geklaut, aber ich hab&#8217;s halt wie immer gern bei mir selbst dokumentiert.<\/p>\n<p>Die versioncmp-Funktion verwendet zwei Strings, die als Versionsnummer dienen und vergleicht diese. Das Resultat ist je nach dem -1, 0 oder 1. Das schaut etwa so aus:<\/p>\n<div class=\"puppet geshi\">\n<pre class=\"lang:default decode:true \">versioncmp('1.0', '1.1') = -1\r\nversioncmp('1.1', '1.1') = 0\r\nversioncmp('1.2', '1.1') = 1<\/pre>\n<\/div>\n<p>Als Ged\u00e4chtnis-St\u00fctze, um nicht immer die Dokumentation lesen zu m\u00fcssen:<\/p>\n<table>\n<tbody>\n<tr>\n<th>gew\u00fcnschter Vergleich<\/th>\n<th>Puppet<\/th>\n<\/tr>\n<tr>\n<td>v1 &lt; v2<\/td>\n<td>versioncmp(v1, v2) &lt; 0<\/td>\n<\/tr>\n<tr>\n<td>v1 &lt;= v2<\/td>\n<td>versioncmp(v1, v2) &lt;= 0<\/td>\n<\/tr>\n<tr>\n<td>v1 = v2<\/td>\n<td>versioncmp(v1, v2) = 0<\/td>\n<\/tr>\n<tr>\n<td>v1 &gt;= v2<\/td>\n<td>versioncmp(v1, v2) &gt;= 0<\/td>\n<\/tr>\n<tr>\n<td>v1 &gt; v2<\/td>\n<td>versioncmp(v1, v2) &gt; 0<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n","protected":false},"excerpt":{"rendered":"Ganz zu Beginn: das ganze hab ich eigentlich nur aus diesem Blog geklaut, aber ich hab&#8217;s halt wie immer gern bei mir selbst dokumentiert. Die versioncmp-Funktion verwendet zwei Strings, die als Versionsnummer dienen und vergleicht diese. Das Resultat ist je nach dem -1, 0 oder 1. Das schaut etwa so&hellip;\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[36,5],"tags":[],"class_list":["post-1157","post","type-post","status-publish","format-standard","hentry","category-cli","category-puppet"],"_links":{"self":[{"href":"https:\/\/blog.datentraeger.li\/index.php?rest_route=\/wp\/v2\/posts\/1157","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.datentraeger.li\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.datentraeger.li\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.datentraeger.li\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.datentraeger.li\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1157"}],"version-history":[{"count":5,"href":"https:\/\/blog.datentraeger.li\/index.php?rest_route=\/wp\/v2\/posts\/1157\/revisions"}],"predecessor-version":[{"id":1162,"href":"https:\/\/blog.datentraeger.li\/index.php?rest_route=\/wp\/v2\/posts\/1157\/revisions\/1162"}],"wp:attachment":[{"href":"https:\/\/blog.datentraeger.li\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1157"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.datentraeger.li\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1157"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.datentraeger.li\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1157"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}