3v4l.org

run code in 300+ PHP versions simultaneously
<?php // Verifica se a função já foi declarada if (!function_exists('lerVendas')) { // Função para garantir que o valor digitado seja positivo e numérico function lerVendas($ano) { do { echo "Digite o valor das vendas de $ano: "; $venda = trim(fgets(STDIN)); // Verifica se o valor é numérico e positivo if (!is_numeric($venda) || $venda <= 0) { echo "O valor deve ser um número positivo. Tente novamente.\n"; } } while (!is_numeric($venda) || $venda <= 0); return (float)$venda; // Retorna o valor como um número } } // Leitura dos valores de vendas para os anos 2020, 2021, 2022 e 2023 $vendas = []; $anos = [2020, 2021, 2022, 2023]; foreach ($anos as $ano) { $vendas[$ano] = lerVendas($ano); } // Verificação de quantos anos tiveram crescimento em relação ao ano anterior $crescimentoAnos = 0; for ($i = 1; $i < count($anos); $i++) { if ($vendas[$anos[$i]] > $vendas[$anos[$i - 1]]) { $crescimentoAnos++; } } // Cálculo do crescimento percentual entre 2020 e 2023 $crescimentoPercentual = (($vendas[2023] - $vendas[2020]) / $vendas[2020]) * 100; // Saídas echo "\nO número de anos em que as vendas cresceram em relação ao ano anterior: $crescimentoAnos\n"; echo "O crescimento percentual entre 2020 e 2023 foi de " . number_format($crescimentoPercentual, 2) . "%\n"; ?> <?php // Verifica se a função já foi declarada if (!function_exists('lerVendas')) { // Função para garantir que o valor digitado seja positivo e numérico function lerVendas($ano) { do { echo "Digite o valor das vendas de $ano: "; $venda = trim(fgets(STDIN)); // Verifica se o valor é numérico e positivo if (!is_numeric($venda) || $venda <= 0) { echo "O valor deve ser um número positivo. Tente novamente.\n"; } } while (!is_numeric($venda) || $venda <= 0); return (float)$venda; // Retorna o valor como um número } } // Leitura dos valores de vendas para os anos 2020, 2021, 2022 e 2023 $vendas = []; $anos = [2020, 2021, 2022, 2023]; foreach ($anos as $ano) { $vendas[$ano] = lerVendas($ano); } // Verificação de quantos anos tiveram crescimento em relação ao ano anterior $crescimentoAnos = 0; for ($i = 1; $i < count($anos); $i++) { if ($vendas[$anos[$i]] > $vendas[$anos[$i - 1]]) { $crescimentoAnos++; } } // Cálculo do crescimento percentual entre 2020 e 2023 $crescimentoPercentual = (($vendas[2023] - $vendas[2020]) / $vendas[2020]) * 100; // Saídas echo "\nO número de anos em que as vendas cresceram em relação ao ano anterior: $crescimentoAnos\n"; echo "O crescimento percentual entre 2020 e 2023 foi de " . number_format($crescimentoPercentual, 2) . "%\n"; ?>

Abusive script

This script was stopped while abusing our resources

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.120.0170.00016.44
8.3.110.0370.00916.52
8.3.100.0320.01816.42
8.3.90.0410.01216.46
8.3.80.0200.00716.47
8.3.70.0200.00616.46
8.3.60.0140.00916.63
8.3.50.0330.00716.25
8.3.40.0260.00417.25
8.3.30.0180.00317.25
8.3.20.0110.00717.50
8.3.10.0340.00417.25
8.3.00.0050.00917.50
8.2.240.0060.00318.84
8.2.230.0210.00916.43
8.2.220.0220.00016.04
8.2.210.0210.00316.20
8.2.200.0160.00616.50
8.2.190.0170.00316.21
8.2.180.0100.00816.41
8.2.170.0200.00017.59
8.2.160.0170.00317.50
8.2.150.0290.01617.50
8.2.140.0210.00017.38
8.2.130.0130.00817.35
8.2.120.0170.00417.38
8.2.110.0210.00017.60
8.2.100.0320.00417.63
8.2.90.0280.00817.73
8.2.80.0230.00017.13
8.2.70.0340.00417.35
8.2.60.0380.00717.38
8.2.50.0350.00917.50
8.2.40.0370.00417.38
8.2.30.0250.01817.38
8.2.20.0340.01117.25
8.2.10.0450.00017.63
8.2.00.0380.00617.38
8.1.290.0380.01016.13
8.1.280.0390.00315.87
8.1.270.0310.00917.14
8.1.260.0360.01017.38
8.1.250.0410.00817.00
8.1.240.0170.00617.12
8.1.230.0120.00617.25
8.1.220.0340.00717.38
8.1.210.0290.01116.98
8.1.200.0410.00717.13
8.1.190.0320.00416.75
8.1.180.0150.00416.88
8.1.170.0140.00517.34
8.1.160.0150.00417.38
8.1.150.0150.00417.00
8.1.140.0160.00316.86
8.1.130.0170.00317.22
8.1.120.0090.00917.35
8.1.110.0150.00816.98
8.1.100.0260.00417.13
8.1.90.0330.01017.25
8.1.80.0290.01017.25
8.1.70.0420.00417.38
8.1.60.0330.01317.13
8.1.50.0340.01117.46
8.1.40.0290.01317.38
8.1.30.0390.00617.63
8.1.20.0340.01017.36
8.1.10.0370.01017.24
8.1.00.0340.01316.88

preferences:
35.5 ms | 403 KiB | 5 Q