online compiler and debugger for c/c++

code. compile. run. debug. share.
Source Code    Language
<?php /** * PHP Challenge vol.6 - Pan od informatyki * * Napisz klasę która będzie zawierać imiona ze zmiennej $data * oraz metodę która przyjmie jako parametr literę na jaką musi zaczynać się imię * i zwróci tablicę imion, jednocześnie zmieniając pierwszą literę imienia na wielką * * Do załadowania klasy użyj przestrzeni nazw, a nie require lub include, * definiując odpowiednią funkcję w metodzie spl_autoload_register */ $data = 'judyta; julia; kamila; karina; laura; lena; magdalena; maja; nadia; natalia; olga; oliwia; pamela; patrycja; regina; renata; sabina; sandra; tamara; tatiana; urszula; weronika; wiesława; zofia; zuzanna; Żaneta; adam; bartłomiej; bartosz; cezary; cyprian; damian; daniel; edward; emanuel; fabian; feliks; gabriel; gerard; henryk; herbert; ignacy; igor; jacek; jakub; kacper; kajetan; lech; leon; maciej; maksymilian; nikodem; norbert; olaf; olgierd; patryk; paweł; radosław; rafał; sebastian; seweryn; tadeusz; teodor; wacław; waldemar; zdzisław; zygmunt'; // Aby rozpocząć edycję kliknij w przycisk powyżej "Fork this" // Aby uruchomić moje rozwiązanie należy odkomentować poniższą linijkę // require('rozwiazanie.php');
<?php spl_autoload_register(function($class){ $classArr = explode('\\', $class, 2); if(isset($classArr[1])){ $class = str_replace('\\', '/', $classArr[1]); $namespce = [ 'App' => __DIR__.'/', ]; if(isset($namespce[$classArr[0]])) { $path = $namespce[$classArr[0]]; $file = $path.$class.'.php'; if (file_exists($file)) { require_once($file); } } } }, true, true);
<?php require('./autoloader.php'); use App\NamesParser; /** * Rozwiązanie */ $objParser = new NamesParser($data); $out = $objParser->getNames('R'); var_dump($out);
<?php namespace App; class NamesParser { private $namesString = ''; private $namesArray = []; public function __construct($names){ $this->names = $names; $list = $this->getNamesListFromString($this->names); $this->namesArray = $this->upperFirstLetter($list); } /** * Główna funkcja zwracająca listę wyfiltrowanych imion */ public function getNames($firstLetter){ return $this->filterLetterList($firstLetter); } /** * Funkcja przetwarzająca ciąg imion w tablicę, jednocześnie usuwając białe znaki z początku i końca imienia */ private function getNamesListFromString($data, $separator = ';'){ $data = explode($separator, $data); foreach($data as &$item){ $item = trim($item); } return $data; } /** * Funkcja filtrująca listę i zostawiająca tylko imiona zaczynające się na wybraną literę */ private function filterLetterList($firstLetter){ $list = array_filter($this->namesArray, function($item) use ($firstLetter) { return $item[0] == $firstLetter || $item[0] == strtoupper($firstLetter); }); return $list; } /** * Funkcja zmieniająca pierwszą literę imienia na wielką */ private function upperFirstLetter($data){ array_walk($data, function(&$item){ $item = ucfirst($item); }); return $data; } }

Compiling Program...

Command line arguments:
Standard Input: Interactive Console Text
×

                

                

Program is not being debugged. Click "Debug" button to start program in debug mode.

#FunctionFile:Line
VariableValue
RegisterValue
ExpressionValue