• We are trusted partners of:

O noua provocare PHP by Innobyte

Posted by | September 22, 2015 | Uncategorized | 3 Comments

Ieri am lansat o noua provocare PHP.

I-am rugat pe colegii nostri, dar si pe prietenii de pe pagina de facebook Innobyte sa redefineasca functia sad astfel incat sa rezolve problema de mai jos, pentru a face codul sa functioneze.

PHPChallenge

Am primit mai multe solutii creative pentru a executa functia beAwesome(). Iata cateva dintre ele:

Solutia nr.1:

Solutia nr.2:

Solutia nr.3:

Solutia nr.4:

Solutia nr.5:

Solutia nr.6:

Ai o solutie mai buna pentru aceasta problema? Impartaseste-o cu noi!

«Go back

3 Comments

  • Adrian Lupu says:

    Salutare, cam tarziu, stiu, dar acum am dat peste acest articol.

    Method chaining este secretul pentru a rezolva exact problema, cu o mica aditie…

    Nu se poate scapa de $this in PHP ca sa arate exact ca in poza codul (vezi constructor), nu stiu daca exista un limbaj in care sa faci inlantuire cu operatorul -> fara sa ai $this (sau this, dar operatorul -> se va adauga in ES6 asa ca nu este posibil momentan) pentru definirea contextului:
    sad() === true) {
    $this->sad()->stop();
    $this->beAwesome();
    }
    }

    public function sad()
    {
    $this->caller = “sad”;
    if($this->state == true) {
    return $this;
    } else {
    $this->state = true;
    return true;
    }
    }

    public function stop()
    {
    echo “Stopped being ” . $this->caller . “!\n”;
    }

    public function beAwesome() {
    echo “I’m awesome!”;
    }

    }
    $a = new Life();
    ?>

    • Adrian Lupu says:

      Copy paste fara deschiderea php, se pare ca functia sanitara a crezut ca vreu sa fac injection 😀
      class Life
      {
      private $caller = “”;
      private $state = false;
      public function __construct()
      {
      ///// life motto
      if ($this->sad() === true) {
      $this->sad()->stop();
      $this->beAwesome();
      }
      }

      public function sad()
      {
      $this->caller = “sad”;
      if($this->state == true) {
      return $this;
      } else {
      $this->state = true;
      return true;
      }
      }

      public function stop()
      {
      echo “Stopped being ” . $this->caller . “!\n”;
      }

      public function beAwesome() {
      echo “I’m awesome!”;
      }

      }
      $a = new Life();

Leave a Reply

Your email address will not be published.