3v4l.org

run code in 300+ PHP versions simultaneously
<?php class Libro { public $titulo; public $autor; public $precio; public function __constructor($titulo,$autor,$precio){ $this->titulo = $titulo; $this->autor = $autor; $this->precio = $precio; } public function getTitulo(){ return $this-> titulo; } public function getPrecio(){ return $this->precio; } public function setPrecio($nuevoPrecio){ if ($precio >= 0){ $this->precio = $nuevoPrecio; }else{ echo "Error: Debes de escribir algo" } } $libro1 = new Libro("Harry Potter", "J.K. Rowling", 20); // $libro1->precio = -10; // ESTO AHORA DARÍA ERROR FATAL (No puedes acceder a propiedad privada) // Forma correcta de intentar cambiar el precio: echo "Intentando poner precio negativo...<br>"; $libro1->setPrecio(-50); // El setter bloqueará esto echo "Intentando poner precio correcto...<br>"; $libro1->setPrecio(15); // El setter aceptará esto echo "<hr>"; echo $libro1->mostrarInfo(); // Para leer un dato suelto: echo "El precio actual es: " . $libro1->getPrecio() . "€"; public function mostrarInfo() { return "Libro: {$this->titulo}, escrito por {$this->autor}. Precio: ${$this->precio}"; } const $libro2 = new Libro("1984", "George Orwell", 15); echo $libro1->mostrarInfo(); echo $libro2->mostrarInfo(); }

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.5.10.0310.00916.48
8.5.00.0230.00816.42
8.4.160.0320.01020.52
8.4.150.0320.01019.57
8.4.140.0330.01017.59
8.4.130.0330.00917.83
8.4.120.0360.00917.90
8.4.110.0420.00717.75
8.4.100.0410.01217.69
8.4.90.0410.00817.70
8.4.80.0380.01017.62
8.4.70.0400.00617.84
8.4.60.0440.00317.80
8.4.50.0380.00817.89
8.4.40.0420.00717.63
8.4.30.0360.01117.64
8.4.20.0390.01117.61
8.4.10.0400.00717.60
8.3.290.0310.00918.27
8.3.280.0330.00718.22
8.3.270.0390.00416.84
8.3.260.0350.00816.73
8.3.250.0420.00516.79
8.3.240.0400.00516.91
8.3.230.0410.00716.72
8.3.220.0420.00916.76
8.3.210.0380.01016.85
8.3.200.0400.01016.74
8.3.190.0410.00916.66
8.3.180.0390.00916.62
8.3.170.0450.00916.42
8.3.160.0380.00816.85
8.3.150.0370.00916.62
8.3.140.0370.00916.79
8.3.130.0320.00916.59
8.3.120.0330.00816.64
8.3.110.0310.01016.71
8.3.100.0430.00516.74
8.3.90.0400.00716.79
8.3.80.0400.00916.77
8.3.70.0420.00416.84
8.3.60.0390.00816.84
8.3.50.0330.00916.60
8.3.40.0370.00717.96
8.3.30.0280.00817.86
8.3.20.0300.00717.91
8.3.10.0280.00917.75
8.3.00.0310.00617.68

preferences:
136.39 ms | 1083 KiB | 7 Q