bessere Vorgehensweise möglich? – SELFHTML-Forum Forum als Ergänzung zum SELFHTML-Wiki und zur Dokumentation SELFHTML https://forum.selfhtml.org/self bessere Vorgehensweise möglich? Sun, 04 Aug 19 11:08:24 Z https://forum.selfhtml.org/self/2019/aug/04/bessere-vorgehensweise-moglich/1754625#m1754625 https://forum.selfhtml.org/self/2019/aug/04/bessere-vorgehensweise-moglich/1754625#m1754625 <p>Hallo alle,</p> <p>ich habe mehrfach folgende Konstruktion</p> <pre><code class="block language-php"><span class="token variable">$foo_f</span> <span class="token operator">=</span> <span class="token variable">$foo</span> <span class="token operator">></span> <span class="token number">0</span> <span class="token operator">?</span> <span class="token function">number_format</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token string single-quoted-string">','</span><span class="token punctuation">,</span><span class="token string single-quoted-string">'.'</span><span class="token punctuation">)</span> <span class="token punctuation">:</span> <span class="token string double-quoted-string">""</span><span class="token punctuation">;</span> </code></pre> <p>Ziel ist es, ein (formatiertes) Ergebnis nur anzuzeigen, wenn es größer als Null ist.</p> <p>Gibt es für den Teil</p> <pre><code class="block language-php"><span class="token variable">$foo_f</span> <span class="token operator">=</span> <span class="token variable">$foo</span> <span class="token operator">></span> <span class="token number">0</span> <span class="token operator">?</span> <span class="token variable">$foo</span> <span class="token punctuation">:</span> <span class="token string double-quoted-string">""</span><span class="token punctuation">;</span> </code></pre> <p>eine geschicktere Möglichkeit?</p> <p>Bis demnächst<br> Matthias</p> <div class="signature">-- <br> Pantoffeltierchen haben keine Hobbys.<br> ¯\_(ツ)_/¯ </div> bessere Vorgehensweise möglich? Sun, 04 Aug 19 11:16:17 Z https://forum.selfhtml.org/self/2019/aug/04/bessere-vorgehensweise-moglich/1754626#m1754626 https://forum.selfhtml.org/self/2019/aug/04/bessere-vorgehensweise-moglich/1754626#m1754626 <p>@@Matthias Apsel</p> <blockquote> <p>Ziel ist es, ein (formatiertes) Ergebnis nur anzuzeigen, wenn es größer als Null ist.</p> </blockquote> <p>Kontext? Auf einer Webseite?</p> <blockquote> <p>Gibt es für den Teil</p> <pre><code class="block language-php"><span class="token variable">$foo_f</span> <span class="token operator">=</span> <span class="token variable">$foo</span> <span class="token operator">></span> <span class="token number">0</span> <span class="token operator">?</span> <span class="token variable">$foo</span> <span class="token punctuation">:</span> <span class="token string double-quoted-string">""</span><span class="token punctuation">;</span> </code></pre> <p>eine geschicktere Möglichkeit?</p> </blockquote> <pre><code class="block language-html"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>span</span><span class="token punctuation">></span></span> <span class="token prolog"><?php if ($foo > 0): ?></span> $foo <span class="token prolog"><?php endif; ?></span> <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>span</span><span class="token punctuation">></span></span> </code></pre> <p>bzw.</p> <pre><code class="block language-html"><span class="token prolog"><?php if ($foo > 0): ?></span> <span class="token tag"><span class="token tag"><span class="token punctuation"><</span>span</span><span class="token punctuation">></span></span> $foo <span class="token tag"><span class="token tag"><span class="token punctuation"></</span>span</span><span class="token punctuation">></span></span> <span class="token prolog"><?php endif; ?></span> </code></pre> <p>LLAP </p> <div class="signature">-- <br> <em>„Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“</em> —Kurt Weidemann </div> bessere Vorgehensweise möglich? Sun, 04 Aug 19 11:24:39 Z https://forum.selfhtml.org/self/2019/aug/04/bessere-vorgehensweise-moglich/1754628#m1754628 https://forum.selfhtml.org/self/2019/aug/04/bessere-vorgehensweise-moglich/1754628#m1754628 <blockquote> <p>ich habe mehrfach folgende Konstruktion</p> <p>Gibt es […] eine geschicktere Möglichkeit?</p> </blockquote> <p>Ich wüsste nicht wie. Du könntest höchstens eine Funktion dafür schreiben, aber daran hast du bestimmt auch schon gedacht.</p> <pre><code class="block language-php"><span class="token keyword">function</span> <span class="token function-definition function">format</span><span class="token punctuation">(</span><span class="token keyword type-hint">float</span> <span class="token variable">$foo</span><span class="token punctuation">)</span> <span class="token punctuation">:</span> <span class="token keyword return-type">string</span> <span class="token punctuation">{</span> <span class="token keyword">return</span> <span class="token variable">$foo</span> <span class="token operator">></span> <span class="token number">0</span> <span class="token operator">?</span> <span class="token function">number_format</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token punctuation">,</span> <span class="token number">0</span><span class="token punctuation">,</span> <span class="token string single-quoted-string">','</span><span class="token punctuation">,</span> <span class="token string single-quoted-string">'.'</span><span class="token punctuation">)</span> <span class="token punctuation">:</span> <span class="token string single-quoted-string">''</span><span class="token punctuation">;</span> <span class="token punctuation">}</span> </code></pre> bessere Vorgehensweise möglich? Sun, 04 Aug 19 11:48:14 Z https://forum.selfhtml.org/self/2019/aug/04/bessere-vorgehensweise-moglich/1754636#m1754636 https://forum.selfhtml.org/self/2019/aug/04/bessere-vorgehensweise-moglich/1754636#m1754636 <p>Hello Matthias,</p> <blockquote> <p>ich habe mehrfach folgende Konstruktion</p> <pre><code class="block language-php"><span class="token variable">$foo_f</span> <span class="token operator">=</span> <span class="token variable">$foo</span> <span class="token operator">></span> <span class="token number">0</span> <span class="token operator">?</span> <span class="token function">number_format</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token string single-quoted-string">','</span><span class="token punctuation">,</span><span class="token string single-quoted-string">'.'</span><span class="token punctuation">)</span> <span class="token punctuation">:</span> <span class="token string double-quoted-string">""</span><span class="token punctuation">;</span> </code></pre> <p>Ziel ist es, ein (formatiertes) Ergebnis nur anzuzeigen, wenn es größer als Null ist.</p> <p>Gibt es für den Teil</p> <pre><code class="block language-php"><span class="token variable">$foo_f</span> <span class="token operator">=</span> <span class="token variable">$foo</span> <span class="token operator">></span> <span class="token number">0</span> <span class="token operator">?</span> <span class="token variable">$foo</span> <span class="token punctuation">:</span> <span class="token string double-quoted-string">""</span><span class="token punctuation">;</span> </code></pre> <p>eine geschicktere Möglichkeit?</p> </blockquote> <p>Mut zu einer echten Funktion?</p> <p>Das würde vermutlich auch leichter lesbar sein, obwohl es nur das Gleiche bewirkt. Ich bin kein Freund von cryptischen Einzeilern.</p> <p>Glück Auf<br> Tom vom Berg</p> <div class="signature">-- <br> Es gibt nichts Gutes, außer man tut es!<br> Das Leben selbst ist der Sinn. </div> bessere Vorgehensweise möglich? Sun, 04 Aug 19 15:12:56 Z https://forum.selfhtml.org/self/2019/aug/04/bessere-vorgehensweise-moglich/1754650#m1754650 https://forum.selfhtml.org/self/2019/aug/04/bessere-vorgehensweise-moglich/1754650#m1754650 <blockquote> <p>Hallo alle,</p> <p>ich habe mehrfach folgende Konstruktion</p> <pre><code class="block language-php"><span class="token variable">$foo_f</span> <span class="token operator">=</span> <span class="token variable">$foo</span> <span class="token operator">></span> <span class="token number">0</span> <span class="token operator">?</span> <span class="token function">number_format</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token string single-quoted-string">','</span><span class="token punctuation">,</span><span class="token string single-quoted-string">'.'</span><span class="token punctuation">)</span> <span class="token punctuation">:</span> <span class="token string double-quoted-string">""</span><span class="token punctuation">;</span> </code></pre> <p>Ziel ist es, ein (formatiertes) Ergebnis nur anzuzeigen, wenn es größer als Null ist.</p> <p>Gibt es für den Teil</p> <pre><code class="block language-php"><span class="token variable">$foo_f</span> <span class="token operator">=</span> <span class="token variable">$foo</span> <span class="token operator">></span> <span class="token number">0</span> <span class="token operator">?</span> <span class="token variable">$foo</span> <span class="token punctuation">:</span> <span class="token string double-quoted-string">""</span><span class="token punctuation">;</span> </code></pre> <p>eine geschicktere Möglichkeit?</p> </blockquote> <p>Die Frage ist, was Du stattdessen haben willst. Ob ein Leerstring geschickt oder ungeschickt ist, kannst nur Du wissen. MFG</p> bessere Vorgehensweise möglich? Sun, 04 Aug 19 16:46:29 Z https://forum.selfhtml.org/self/2019/aug/04/bessere-vorgehensweise-moglich/1754659#m1754659 https://forum.selfhtml.org/self/2019/aug/04/bessere-vorgehensweise-moglich/1754659#m1754659 <p>Hallo alle,</p> <p>danke für alle Hinweise. Ich habe es in eine Funktion ausgelagert.</p> <p>Bis demnächst<br> Matthias</p> <div class="signature">-- <br> Pantoffeltierchen haben keine Hobbys.<br> ¯\_(ツ)_/¯ </div> bessere Vorgehensweise möglich? Sun, 04 Aug 19 11:56:39 Z https://forum.selfhtml.org/self/2019/aug/04/bessere-vorgehensweise-moglich/1754637#m1754637 https://forum.selfhtml.org/self/2019/aug/04/bessere-vorgehensweise-moglich/1754637#m1754637 <p>Hallo Tom,</p> <blockquote> <p>Mut zu einer echten Funktion?</p> </blockquote> <p>wurde ja schon vorgeschlagen.</p> <blockquote> <p>Das würde vermutlich auch leichter lesbar sein, obwohl es nur das Gleiche bewirkt. Ich bin kein Freund von cryptischen Einzeilern.</p> </blockquote> <p>Das kommt drauf an. [tm]</p> <p>Wenn die gesamte Anweisung kompakt und übersichtlich ist, so wie hier, bin ich ein großer Freund von Einzeilern. Da sieht man sowohl die Bedingung, als auch die Zuweisung(en) auf einen Blick.<br> Bei einem Funktionsaufruf steht dagegen ein Teil der Information an einer anderen Stelle. Das finde ich erst dann günstiger, wenn die Funktion selbst relativ umfangreich und komplex wird, also deutlich über einen Einzeiler hinausgeht.</p> <p>Schönen Sonntag noch,<br>  Martin</p> <div class="signature">-- <br> Lieber einmal mit Schneewittchen, als siebenmal mit den Zwergen. </div> bessere Vorgehensweise möglich? Sun, 04 Aug 19 18:12:28 Z https://forum.selfhtml.org/self/2019/aug/04/bessere-vorgehensweise-moglich/1754669#m1754669 https://forum.selfhtml.org/self/2019/aug/04/bessere-vorgehensweise-moglich/1754669#m1754669 <p>@@TS</p> <blockquote> <blockquote> <pre><code class="block language-php"><span class="token variable">$foo_f</span> <span class="token operator">=</span> <span class="token variable">$foo</span> <span class="token operator">></span> <span class="token number">0</span> <span class="token operator">?</span> <span class="token function">number_format</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token string single-quoted-string">','</span><span class="token punctuation">,</span><span class="token string single-quoted-string">'.'</span><span class="token punctuation">)</span> <span class="token punctuation">:</span> <span class="token string double-quoted-string">""</span><span class="token punctuation">;</span> </code></pre> <p>Ziel ist es, ein (formatiertes) Ergebnis nur anzuzeigen, wenn es größer als Null ist.</p> <p>Gibt es für den Teil</p> <pre><code class="block language-php"><span class="token variable">$foo_f</span> <span class="token operator">=</span> <span class="token variable">$foo</span> <span class="token operator">></span> <span class="token number">0</span> <span class="token operator">?</span> <span class="token variable">$foo</span> <span class="token punctuation">:</span> <span class="token string double-quoted-string">""</span><span class="token punctuation">;</span> </code></pre> <p>eine geschicktere Möglichkeit?</p> </blockquote> <p>Mut zu einer echten Funktion?</p> </blockquote> <p>Welche aber wohl nicht nur diesen Teil enthalten sollte, sondern auch das <code class="language-php"><span class="token function">number_format</span><span class="token punctuation">(</span><span class="token variable">$foo</span><span class="token punctuation">,</span><span class="token number">0</span><span class="token punctuation">,</span><span class="token string single-quoted-string">','</span><span class="token punctuation">,</span><span class="token string single-quoted-string">'.'</span><span class="token punctuation">)</span></code>.</p> <p>Scheint ja <em>ein</em> Formatierungsaufgabe zu sein: Gibt die Zahl mit Tausendertrennzeichen formatiert aus, wenn positiv, ansonsten nichts.</p> <p>Wenn eine Templatesprache verwendet wird, wäre die Filterfunktion dort richtig aufgehoben, nicht im PHP. Die Backendlogik muss von der gewünschten Ausgabe nichts wissen, die berechnet nur den Wert von <code>$foo</code>. Im Template steht sowas wie <code class="language-twig"><span class="token twig language-twig"><span class="token delimiter punctuation">{{</span> $foo<span class="token operator">|</span>myFilter <span class="token delimiter punctuation">}}</span></span></code>.</p> <p>LLAP </p> <div class="signature">-- <br> <em>„Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“</em> —Kurt Weidemann </div> bessere Vorgehensweise möglich? Sun, 04 Aug 19 12:19:55 Z https://forum.selfhtml.org/self/2019/aug/04/bessere-vorgehensweise-moglich/1754639#m1754639 https://forum.selfhtml.org/self/2019/aug/04/bessere-vorgehensweise-moglich/1754639#m1754639 <p>Hello Martin,</p> <blockquote> <blockquote> <p>Mut zu einer echten Funktion?</p> </blockquote> <p>wurde ja schon vorgeschlagen.</p> </blockquote> <p>War auf meinem Display noch nicht angekommen ;-)</p> <blockquote> <blockquote> <p>Das würde vermutlich auch leichter lesbar sein, obwohl es nur das Gleiche bewirkt. Ich bin kein Freund von cryptischen Einzeilern.</p> </blockquote> <p>Das kommt drauf an. [tm]</p> <p>Wenn die gesamte Anweisung kompakt und übersichtlich ist, so wie hier, bin ich ein großer Freund von Einzeilern. Da sieht man sowohl die Bedingung, als auch die Zuweisung(en) auf einen Blick.<br> Bei einem Funktionsaufruf steht dagegen ein Teil der Information an einer anderen Stelle. Das finde ich erst dann günstiger, wenn die Funktion selbst relativ umfangreich und komplex wird, also deutlich über einen Einzeiler hinausgeht.</p> </blockquote> <p>Man muss diese Zeile dann aber überall vollständig und richtig (aus dem Gedachtnis) wieder hinschreiben, wo man sie benötigt.</p> <p>Soll nun z. B. anstelle von "" eine einzelne "0" oder ein "n/v" erscheinen, musst Du ggf. an diversen Stellen nachbessern.</p> <p>Glück Auf<br> Tom vom Berg</p> <div class="signature">-- <br> Es gibt nichts Gutes, außer man tut es!<br> Das Leben selbst ist der Sinn. </div> bessere Vorgehensweise möglich? Sun, 04 Aug 19 15:27:35 Z https://forum.selfhtml.org/self/2019/aug/04/bessere-vorgehensweise-moglich/1754653#m1754653 https://forum.selfhtml.org/self/2019/aug/04/bessere-vorgehensweise-moglich/1754653#m1754653 <p>Hallo,</p> <blockquote> <p>Man muss diese Zeile dann aber überall vollständig und richtig (aus dem Gedachtnis) wieder hinschreiben, wo man sie benötigt.</p> <p>Soll nun z. B. anstelle von "" eine einzelne "0" oder ein "n/v" erscheinen, musst Du ggf. an diversen Stellen nachbessern.</p> </blockquote> <p>ja, ich habe das Schlüsselwort <strong>mehrfach</strong> im OP überlesen und bin deshalb von einem einzelnen Vorkommen ausgegangen. Dann passt meine Argumentation natürlich nicht mehr so richtig.</p> <p>Ciao,<br>  Martin</p> <div class="signature">-- <br> Computer müssen weiblich sein: Eigensinnig, schwer zu durchschauen, immer für Überraschungen gut - aber man möchte sie nicht missen. </div> bessere Vorgehensweise möglich? Sun, 04 Aug 19 16:48:40 Z https://forum.selfhtml.org/self/2019/aug/04/bessere-vorgehensweise-moglich/1754660#m1754660 https://forum.selfhtml.org/self/2019/aug/04/bessere-vorgehensweise-moglich/1754660#m1754660 <p>Hallo Emil,</p> <blockquote> <blockquote> <p>Ziel ist es, ein (formatiertes) Ergebnis nur anzuzeigen, wenn es größer als Null ist.</p> </blockquote> <p>Die Frage ist, was Du stattdessen haben willst. Ob ein Leerstring geschickt oder ungeschickt ist, kannst nur Du wissen. MFG</p> </blockquote> <p>Die Frage war nach einer geschickteren Möglichkeit, das Ziel zu erreichen.</p> <p>Bis demnächst<br> Matthias</p> <div class="signature">-- <br> Pantoffeltierchen haben keine Hobbys.<br> ¯\_(ツ)_/¯ </div> bessere Vorgehensweise möglich? Mon, 05 Aug 19 08:03:34 Z https://forum.selfhtml.org/self/2019/aug/04/bessere-vorgehensweise-moglich/1754694#m1754694 https://forum.selfhtml.org/self/2019/aug/04/bessere-vorgehensweise-moglich/1754694#m1754694 <blockquote> <p>Die Frage war nach einer geschickteren Möglichkeit, das Ziel zu erreichen.</p> </blockquote> <p>Du verwendest den bedingten(ternär) Operator in einer Zuweisung. Und das ist genau das was Deinem Zweck entspricht.</p> <p>MFG</p> bessere Vorgehensweise möglich? Sun, 04 Aug 19 19:11:42 Z https://forum.selfhtml.org/self/2019/aug/04/bessere-vorgehensweise-moglich/1754670#m1754670 https://forum.selfhtml.org/self/2019/aug/04/bessere-vorgehensweise-moglich/1754670#m1754670 <p>Hallo Gunnar,</p> <blockquote> <p>Wenn eine Templatesprache verwendet wird,</p> </blockquote> <p>PHP ist eine Template-Sprache (ja ok, es gibt bessere).</p> <p>Und eine Backend-Sprache.</p> <p>Bei gutem Design trennt man die Module für Backend und Template. Und baut sich Helper, so wie dein myFilter, die sich um die Aufgabe kümmern. Also das, was Matthias gemacht hat.</p> <p><em>Rolf</em></p> <div class="signature">-- <br> sumpsi - posui - clusi </div> bessere Vorgehensweise möglich? Mon, 05 Aug 19 01:56:48 Z https://forum.selfhtml.org/self/2019/aug/04/bessere-vorgehensweise-moglich/1754676#m1754676 https://forum.selfhtml.org/self/2019/aug/04/bessere-vorgehensweise-moglich/1754676#m1754676 <p>@@Rolf B</p> <blockquote> <blockquote> <p>Wenn eine Templatesprache verwendet wird,</p> </blockquote> <p>PHP ist eine Template-Sprache</p> </blockquote> <p><a href="https://forum.selfhtml.org/self/2019/jan/5/pro-strich-contra-smarty/1740035#m1740035" rel="noopener noreferrer">Ja.</a></p> <p>Ich hätte genauer formulieren sollen „Wenn eine dedizierte Templatesprache verwendet wird“.</p> <blockquote> <p>Bei gutem Design trennt man die Module für Backend und Template. Und baut sich Helper, so wie dein myFilter, die sich um die Aufgabe kümmern. Also das, was Matthias gemacht hat.</p> </blockquote> <p>Hat er das?</p> <p>LLAP </p> <div class="signature">-- <br> <em>„Man kann sich halt nicht sicher sein“, sagt der Mann auf der Straße, „dass in einer Gruppe Flüchtlinge nicht auch Arschlöcher sind.“<br> „Stimmt wohl“, sagt das Känguru, „aber immerhin kann man sich sicher sein, dass in einer Gruppe Rassisten nur Arschlöcher sind.“</em><br> —Marc-Uwe Kling </div>