Globale Variable Return Unset One Liner

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Globale Variable Return Unset One Liner

    Hallo meine Lieben,
    habt Ihr eine elegante Idee/Lösung?



    PHP Code:
    function cache() {
        return (@
    $GLOBALS['CACHE']?:FALSE), unset($GLOBALS['CACHE']);

    Möglich ist dies, aber mich interessiert ob es was für's Case nr. 1 gibt.
    PHP Code:
    function cache() {
        
    $tmp = @$GLOBALS['CACHE'];
        unset(
    $GLOBALS['CACHE']);
        return 
    $tmp?:FALSE;

    Case 2 hat den eine leere $tmp welchen man durch den garbagecollector jagen muss, ist nicht wirklich elegant.

    ps: das ganze ist eine CLI App
    Last edited by Ricola; 31-07-2016, 14:59. Reason: Ergänzung
    -wissen was mann weiss und wissen was mann nicht weiss, das allein ist wissen...und eine stärke der FRAUEN!!! ;P- </n(R)icola>

  • #2
    Ich sehe keinen Weg. Ist das denn wirklich ein Problem? Ich nehme an, es geht dir um den potenziell doppelten Speicherverbrauch, wenn $GLOBALS['CACHE'] zum Beispiel 100 MB groß ist?

    Ich würde glaube ich erst mal versuchen, irgendwie zu ermitteln, wie PHP sich da verhält (memory_get_peak_usage-Funktion und irgendein geeigneter Test).

    Comment


    • #3
      Warum verwendest du keinen richtigen Cache? Warum die Hampelei mit globalen Variablen?

      Comment


      • #4
        bump
        Last edited by woozel; 01-08-2016, 20:53.

        Comment


        • #5
          Hi und danke für die Antworten.
          Imho sind leider diese Antworten etwas Offtop.

          Diese Variable ist eine FIFO Variable, um es einfacher zu erklären Variable gelesen >> Variable gelöscht.
          Ich stehe nicht auf Overbloat Code, imho gehört code lesbar und minimal zu sein.

          APC, MEMCACHE, Sempaphoren alles unnötig, warum muss man einen Supermarkt + Lagerhaus kaufen wenn man nur einen Apfel möchte und diese gleich aufisst statt zu lagern. Imho wenn es ums lagern geht, kann das leicht zum Offtop werden, das war aber nicht der sinn der Frage.

          Hab hier im Forum schon viele PHP Hacks gesehen, solch einen jedoch leider noch nicht.
          Darum frag ich die Gurus.
          </n(R)icola>
          -wissen was mann weiss und wissen was mann nicht weiss, das allein ist wissen...und eine stärke der FRAUEN!!! ;P- </n(R)icola>

          Comment


          • #6
            Ein allgemeines Konstrukt, das den Wert einer Variablen liefert und gleichzeitig die Variable zerstört, existiert in PHP relativ sicher nicht.

            Vielleicht ist array_pop interessant für dich.

            - http://php.net/manual/en/function.array-pop.php
            Last edited by mermshaus; 02-08-2016, 02:59.

            Comment


            • #7
              Originally posted by mermshaus View Post
              Vielleicht ist array_pop interessant für dich.
              Sehr guter Ansatz Klasse!
              -wissen was mann weiss und wissen was mann nicht weiss, das allein ist wissen...und eine stärke der FRAUEN!!! ;P- </n(R)icola>

              Comment

              Working...
              X