3v4l.org

run code in 300+ PHP versions simultaneously
<?php /*! * Previsão de Tempo - CPTEC/INPE * * @documentation: http://servicos.cptec.inpe.br/XML/ * @icons: http://tempo.cptec.inpe.br/~rtempo/legenda.shtml */ class WeatherForecast { private $_source = 'CPTEC/INPE'; private $_api = 'http://servicos.cptec.inpe.br/XML/'; private $_city = null; private $_labels = array( 'ec' => array( 'description' => 'Encoberto com Chuvas Isoladas', 'text' => 'Céu totalmente encoberto com chuvas em algumas regiões, sem aberturas de sol.', ), 'ci' => array( 'description' => 'Chuvas Isoladas', 'text' => 'Muitas nuvens com curtos períodos de sol e chuvas em algumas áreas.', ), 'c' => array( 'description' => 'Chuva', 'text' => 'Muitas nuvens e chuvas periódicas.', ), 'in' => array( 'description' => 'Instável', 'text' => 'Nebulosidade variável com chuva a qualquer hora do dia.', ), 'pp' => array( 'description' => 'Possibilidade de Pancadas de Chuva', 'text' => 'Nebulosidade variável com pequena chance (inferior a 30%) de pancada de chuva.', ), 'cm' => array( 'description' => 'Chuva pela Manhã', 'text' => 'Chuva pela manhã melhorando ao longo do dia.', ), 'cn' => array( 'description' => 'Chuva a Noite', 'text' => 'Nebulosidade em aumento e chuvas durante a noite.', ), 'pt' => array( 'description' => 'Pancadas de Chuva a Tarde', 'text' => 'Predomínio de sol pela manhã. À tarde chove com trovoada.', ), 'pm' => array( 'description' => 'Pancadas de Chuva pela Manhã', 'text' => 'Chuva com trovoada pela manhã. À tarde o tempo abre e não chove.', ), 'np' => array( 'description' => 'Nublado e Pancadas de Chuva', 'text' => 'Muitas nuvens com curtos períodos de sol e pancadas de chuva com trovoadas.', ), 'pc' => array( 'description' => 'Pancadas de Chuva', 'text' => 'Chuva de curta duração e pode ser acompanhada de trovoadas a qualquer hora do dia.', ), 'pn' => array( 'description' => 'Parcialmente Nublado', 'text' => 'Sol entre poucas nuvens.', ), 'cv' => array( 'description' => 'Chuvisco', 'text' => 'Muitas nuvens e chuva fraca composta de pequenas gotas d´ água.', ), 'ch' => array( 'description' => 'Chuvoso', 'text' => 'Nublado com chuvas contínuas ao longo do dia.', ), 't' => array( 'description' => 'Tempestade', 'text' => 'Chuva forte capaz de gerar granizo e ou rajada de vento, com força destrutiva (Veloc. aprox. de 90 Km/h) e ou tornados.', ), 'ps' => array( 'description' => 'Predomínio de Sol', 'text' => 'Sol na maior parte do período.', ), 'e' => array( 'description' => 'Encoberto', 'text' => 'Céu totalmente encoberto, sem aberturas de sol.', ), 'n' => array( 'description' => 'Nublado', 'text' => 'Muitas nuvens com curtos períodos de sol.', ), 'cl' => array( 'description' => 'Céu Claro', 'text' => 'Sol durante todo o período. Ausência de nuvens.', ), 'nv' => array( 'description' => 'Nevoeiro', 'text' => 'Gotículas de água em suspensão que reduzem a visibilidade.', ), 'g' => array( 'description' => 'Geada', 'text' => 'Cobertura de cristais de gelo que se formam por sublimação direta sobre superfícies expostas cuja temperatura está abaixo do ponto de congelamento.', ), 'ne' => array( 'description' => 'Neve', 'text' => 'Vapor de água congelado na nuvem, que cai em forma de cristais e flocos.', ), 'nd' => array( 'description' => 'Não Definido', 'text' => 'Não Definido.', ), 'pnt' => array( 'description' => 'Pancadas de Chuva a Noite', 'text' => 'Chuva de curta duração podendo ser acompanhada de trovoadas à noite.', ), 'psc' => array( 'description' => 'Possibilidade de Chuva', 'text' => 'Nebulosidade variável com pequena chance (inferior a 30%) de chuva.', ), 'pcm' => array( 'description' => 'Possibilidade de Chuva pela Manhã', 'text' => 'Nebulosidade variável com pequena chance (inferior a 30%) de chuva pela manhã.', ), 'pct' => array( 'description' => 'Possibilidade de Chuva a Tarde', 'text' => 'Nebulosidade variável com pequena chance (inferior a 30%) de chuva pela tarde.', ), 'pcn' => array( 'description' => 'Possibilidade de Chuva a Noite', 'text' => 'Nebulosidade variável com pequena chance (inferior a 30%) de chuva à noite.', ), 'npt' => array( 'description' => 'Nublado com Pancadas a Tarde', 'text' => 'Muitas nuvens com curtos períodos de sol e pancadas de chuva com trovoadas à tarde.', ), 'npn' => array( 'description' => 'Nublado com Pancadas a Noite', 'text' => 'Muitas nuvens com curtos períodos de sol e pancadas de chuva com trovoadas à noite.', ), 'ncn' => array( 'description' => 'Nublado com Possibilidade de Chuva à Noite', 'text' => 'Muitas nuvens com curtos períodos de sol com pequena chance (inferior a 30%) de chuva à noite.', ), 'nct' => array( 'description' => 'Nublado com Possibilidade de Chuva à Tarde', 'text' => 'Muitas nuvens com curtos períodos de sol com pequena chance (inferior a 30%) de chuva à tarde.', ), 'ncm' => array( 'description' => 'Nublado com Possibilidade de Chuva pela Manhã', 'text' => 'Muitas nuvens com curtos períodos de sol com pequena chance (inferior a 30%) de chuva pela manhã.', ), 'npm' => array( 'description' => 'Nublado com Pancadas pela Manhã', 'text' => 'Muitas nuvens com curtos períodos de sol e chuva com trovoadas pela manhã.', ), 'npp' => array( 'description' => 'Nublado com Possibilidade de Chuva', 'text' => 'Muitas nuvens com curtos períodos de sol com pequena chance (inferior a 30%) de chuva a qualquer hora do dia.', ), 'vn' => array( 'description' => 'Variação de Nebulosidade', 'text' => 'Períodos curtos de sol intercalados com períodos de nuvens.', ), 'ct' => array( 'description' => 'Chuva a Tarde', 'text' => 'Nebulosidade em aumento e chuvas a partir da tarde.', ), 'ppn' => array( 'description' => 'Possibilidade de Pancadas de Chuva à Noite', 'text' => 'Nebulosidade variável com pequena chance (inferior a 30%) de chuva à noite.', ), 'ppt' => array( 'description' => 'Possibilidade de Pancadas de Chuva à Tarde', 'text' => 'Nebulosidade variável com pequena chance (inferior a 30%) de chuva pela tarde.', ), 'ppm' => array( 'description' => 'Possibilidade de Pancadas de Chuva pela Manhã', 'text' => 'Nebulosidade variável com pequena chance (inferior a 30%) de chuva pela manhã.', ), ); public function __construct($city) { $this->_city = $city; } private function _getApiData() { return simplexml_load_file($this->_api . 'cidade/7dias/' . $this->_city . '/previsao.xml'); } public function get() { $api = $this->_getApiData(); $data = new stdClass(); $data->source = $this->_source; $data->city = (string) $api->nome; $data->state = (string) $api->uf; $data->updated_at = (string) $api->atualizacao; $data->forecast = array(); for ($i = 0; $i < count($api->previsao); $i++) { $forecast = $api->previsao[$i]; $data->forecast[$i]->day = (string) $forecast->dia; $data->forecast[$i]->iuv = (float) $forecast->iuv; $data->forecast[$i]->temperature = new stdClass(); $data->forecast[$i]->temperature->high = (float) $forecast->maxima; $data->forecast[$i]->temperature->low = (float) $forecast->minima; $data->forecast[$i]->temperature->average = ($data->forecast[$i]->temperature->low + $data->forecast[$i]->temperature->high) / 2; $data->forecast[$i]->weather = new stdClass(); $data->forecast[$i]->weather->abbreviation = (string) $forecast->tempo; $data->forecast[$i]->weather->description = $this->_labels[(string) $forecast[$i]->tempo]['description']; $data->forecast[$i]->weather->text = $this->_labels[(string) $forecast[$i]->tempo]['text']; $data->forecast[$i]->weather->icon = 'http://img0.cptec.inpe.br/~rgrafico/icones_principais/tempo/icones/' . (string) $forecast->tempo . '.png'; } return $data; } } $wf = new WeatherForecast(237); // Porto Alegre, RS $data = $wf->get(); header('Content-type: application/json; charset=UTF-8'); header('Access-Control-Allow-Origin: *'); header('Access-Control-Allow-Methods: GET'); echo json_encode($data);

Here you find the average performance (time & memory) of each version. A grayed out version indicates it didn't complete successfully (based on exit-code).

VersionSystem time (s)User time (s)Memory (MiB)
8.3.60.0150.00016.88
8.3.50.0170.00522.24
8.3.40.0150.00619.42
8.3.30.0040.01119.29
8.3.20.0040.00420.86
8.3.10.0040.00424.08
8.3.00.0080.00019.75
8.2.180.0150.00418.92
8.2.170.0170.00322.96
8.2.160.0150.00020.78
8.2.150.0050.00325.66
8.2.140.0050.00324.66
8.2.130.0050.00326.16
8.2.120.0100.00018.00
8.2.110.0060.00622.56
8.2.100.0030.00918.18
8.2.90.0050.00319.30
8.2.80.0030.00518.00
8.2.70.0040.00417.88
8.2.60.0040.00418.18
8.2.50.0000.00818.07
8.2.40.0000.00819.71
8.2.30.0040.00420.93
8.2.20.0040.00418.05
8.2.10.0050.00318.39
8.2.00.0040.00418.42
8.1.280.0090.00625.92
8.1.270.0060.00323.97
8.1.260.0040.00426.35
8.1.250.0040.00428.09
8.1.240.0070.00322.77
8.1.230.0040.00718.03
8.1.220.0040.00818.16
8.1.210.0000.00918.77
8.1.200.0080.00317.73
8.1.190.0000.01017.50
8.1.180.0030.00518.10
8.1.170.0000.00919.34
8.1.160.0000.00722.37
8.1.150.0040.00419.18
8.1.140.0030.00619.93
8.1.130.0000.00717.98
8.1.120.0070.00017.77
8.1.110.0050.00317.65
8.1.100.0000.00817.59
8.1.90.0050.00317.74
8.1.80.0080.00017.67
8.1.70.0000.00817.82
8.1.60.0050.00317.93
8.1.50.0040.00417.79
8.1.40.0060.00617.75
8.1.30.0000.00817.99
8.1.20.0040.00417.79
8.1.10.0040.00417.89
8.1.00.0000.00817.89
8.0.300.0000.00818.77
8.0.290.0040.00417.13
8.0.280.0050.00318.75
8.0.270.0040.00417.55
8.0.260.0030.00317.56
8.0.250.0050.00217.25
8.0.240.0060.00317.35
8.0.230.0040.00317.14
8.0.220.0050.00317.31
8.0.210.0030.00617.30
8.0.200.0000.00717.36
8.0.190.0050.00317.38
8.0.180.0040.00417.21
8.0.170.0040.00417.03
8.0.160.0000.00717.08
8.0.150.0040.00417.13
8.0.140.0000.00717.14
8.0.130.0000.00613.82
8.0.120.0040.00417.37
8.0.110.0030.00517.37
8.0.100.0030.00617.30
8.0.90.0080.00017.36
8.0.80.0060.01217.20
8.0.70.0040.00417.22
8.0.60.0030.00517.34
8.0.50.0080.00017.44
8.0.30.0100.01017.63
8.0.20.0090.01217.55
8.0.10.0040.00417.50
8.0.00.0100.00817.24
7.4.330.0000.00615.08
7.4.320.0000.00616.95
7.4.300.0050.00316.86
7.4.290.0070.00016.74
7.4.280.0090.00016.83
7.4.270.0000.00716.98
7.4.260.0080.00016.93
7.4.250.0090.00016.84
7.4.240.0020.00616.92
7.4.230.0040.00416.93
7.4.220.0030.01717.07
7.4.210.0080.00716.93
7.4.200.0060.00316.76
7.4.160.0110.00716.85
7.4.150.0200.00717.40
7.4.140.0120.01017.86
7.4.130.0090.01117.03
7.4.120.0100.00916.96
7.4.110.0180.00916.93
7.4.100.0100.01416.99
7.4.90.0130.00616.94
7.4.80.0060.01319.39
7.4.70.0090.00916.91
7.4.60.0150.00316.95
7.4.50.0030.00316.91
7.4.40.0160.00617.06
7.4.30.0100.01417.02
7.4.00.0040.01315.37
7.3.330.0000.00513.59
7.3.320.0030.00313.43
7.3.310.0050.00316.78
7.3.300.0000.00716.60
7.3.290.0040.00416.73
7.3.280.0070.01216.74
7.3.270.0060.01517.40
7.3.260.0090.00916.73
7.3.250.0080.01116.88
7.3.240.0120.00716.77
7.3.230.0130.00716.88
7.3.210.0130.00616.82
7.3.200.0110.01217.05
7.3.190.0090.00916.70
7.3.180.0060.01516.76
7.3.170.0090.00917.00
7.3.160.0130.00616.79
7.3.120.0080.01115.20
7.3.110.0090.00815.10
7.3.100.0070.00915.13
7.3.90.0040.00915.27
7.3.80.0050.01015.21
7.3.70.0050.00915.13
7.3.60.0060.00815.08
7.3.50.0040.00815.08
7.3.40.0070.00815.19
7.3.30.0060.00814.99
7.3.20.0070.00516.90
7.3.10.0100.00716.84
7.3.00.0100.00616.78
7.2.330.0100.01017.20
7.2.320.0080.01116.82
7.2.310.0100.00717.17
7.2.300.0120.01216.71
7.2.290.0060.01217.09
7.2.250.0100.01215.33
7.2.240.0070.01315.46
7.2.230.0030.01215.35
7.2.220.0050.00915.33
7.2.210.0050.00915.24
7.2.200.0070.00815.35
7.2.190.0050.00915.20
7.2.180.0080.00715.25
7.2.170.0070.00715.41
7.2.160.0050.00815.38
7.2.150.0120.00517.19
7.2.140.0050.01217.24
7.2.130.0100.00617.06
7.2.120.0060.01017.03
7.2.110.0100.00917.12
7.2.100.0110.00617.01
7.2.90.0070.00817.13
7.2.80.0150.00517.06
7.2.70.0060.00917.07
7.2.60.0100.00717.07
7.2.50.0090.00616.95
7.2.40.0090.00817.21
7.2.30.0070.00917.02
7.2.20.0080.00917.00
7.2.10.0100.00716.98
7.2.00.0060.01117.54
7.1.330.0060.01116.08
7.1.320.0080.00516.09
7.1.310.0060.00916.05
7.1.300.0070.00715.96
7.1.290.0080.00815.92
7.1.280.0050.00916.01
7.1.270.0050.00815.97
7.1.260.0120.00216.05
7.1.250.0070.00715.94
7.1.240.0040.00916.06
7.1.230.0080.00815.90
7.1.220.0080.00816.22
7.1.210.0080.00615.83
7.1.200.0090.00715.99
7.1.190.0100.00715.97
7.1.180.0070.00815.79
7.1.170.0180.00316.01
7.1.160.0070.01016.00
7.1.150.0080.00815.82
7.1.140.0120.00116.04
7.1.130.0090.00715.94
7.1.120.0090.00516.00
7.1.110.0090.00716.12
7.1.100.0090.00616.79
7.1.90.0070.00716.20
7.1.80.0070.00716.07
7.1.70.0080.00716.57
7.1.60.0080.00717.22
7.1.50.0030.01416.54
7.1.40.0100.00616.11
7.1.30.0090.00716.04
7.1.20.0090.00915.81
7.1.10.0060.00816.16
7.1.00.0070.02818.31
7.0.330.0060.01015.60
7.0.320.0050.00815.45
7.0.310.0110.00515.40
7.0.300.0100.00815.39
7.0.290.0080.00515.50
7.0.280.0090.00415.74
7.0.270.0100.00415.82
7.0.260.0080.00815.52
7.0.250.0060.01115.65
7.0.240.0040.00915.70
7.0.230.0060.00915.57
7.0.220.0070.00815.51
7.0.210.0050.01015.78
7.0.200.0130.00715.55
7.0.190.0050.00915.71
7.0.180.0070.00715.55
7.0.170.0110.00515.54
7.0.160.0050.01215.75
7.0.150.0050.01115.63
7.0.140.0080.00715.69
7.0.130.0110.00515.73
7.0.120.0070.01215.61
7.0.110.0050.01115.83
7.0.100.0080.01115.68
7.0.90.0150.02617.23
7.0.80.0080.02117.42
7.0.70.0080.03217.28
7.0.60.0090.02917.19
7.0.50.0140.02917.37
7.0.40.0070.03315.92
7.0.30.0080.02915.97
7.0.20.0090.02215.84
7.0.10.0090.03215.84
7.0.00.0090.02615.88
5.6.400.0040.00414.45
5.6.390.0060.00914.63
5.6.380.0080.00714.84
5.6.370.0060.01114.66
5.6.360.0050.01314.66
5.6.350.0050.01314.77
5.6.340.0150.00214.60
5.6.330.0100.00714.87
5.6.320.0030.01414.87
5.6.310.0080.00814.75
5.6.300.0090.00914.60
5.6.290.0080.01014.76
5.6.280.0080.02816.93
5.6.270.0100.00914.85
5.6.260.0050.01214.74
5.6.250.0070.01214.77
5.6.240.0150.02716.94
5.6.230.0100.02616.90
5.6.220.0090.03216.98
5.6.210.0080.02816.83
5.6.200.0110.03517.07
5.6.190.0060.02617.06
5.6.180.0100.02516.97
5.6.170.0090.03517.06
5.6.160.0080.03017.00
5.6.150.0070.02017.09
5.6.140.0120.01917.14
5.6.130.0070.02417.05
5.6.120.0110.03516.90
5.6.110.0120.03117.02
5.6.100.0070.03516.97
5.6.90.0050.03516.95
5.6.80.0060.02216.82
5.6.70.0050.02216.68
5.6.60.0080.02816.60
5.6.50.0090.03216.57
5.6.40.0040.03216.66
5.6.30.0100.02816.67
5.6.20.0030.03216.72
5.6.10.0060.03316.78
5.6.00.0060.01916.77
5.5.380.0070.03215.64
5.5.370.0100.02715.74
5.5.360.0100.03115.70
5.5.350.0070.02015.82
5.5.340.0070.02415.93
5.5.330.0110.02915.72
5.5.320.0090.02115.82
5.5.310.0070.02915.82
5.5.300.0080.02715.84
5.5.290.0060.03515.84
5.5.280.0070.03015.91
5.5.270.0060.02615.83
5.5.260.0080.03115.70
5.5.250.0090.01815.73
5.5.240.0080.02015.59
5.5.230.0060.03115.70
5.5.220.0100.02515.47
5.5.210.0100.02915.61
5.5.200.0050.02215.61
5.5.190.0030.02415.50
5.5.180.0080.02615.58
5.5.170.0030.00913.14
5.5.160.0080.03015.55
5.5.150.0080.02615.58
5.5.140.0090.02115.59
5.5.130.0050.03315.58
5.5.120.0050.02015.64
5.5.110.0050.03115.63
5.5.100.0060.02815.51
5.5.90.0090.01715.65
5.5.80.0110.02215.52
5.5.70.0030.02815.36
5.5.60.0090.03215.39
5.5.50.0040.03415.36
5.5.40.0080.03015.59
5.5.30.0020.03115.51
5.5.20.0060.02415.61
5.5.10.0070.01915.44
5.5.00.0070.02615.48

preferences:
57.73 ms | 401 KiB | 5 Q