- Output for 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.25, 8.4.1 - 8.4.12
- Lol1 PHP is the best language in the shit Lol2 Just lol PHP is the best language in the shit Just lol
<?php
abstract class Lol {
abstract public static function run();
public static function onceLol() {
if (static::$cache!==NULL) {
return static::$cache;
}
static::$cache = static::run();
return static::$cache;
}
}
class Lol1 extends Lol {
protected static $cache = NULL;
public static function run() {
echo "Lol1\n";
return 'PHP is the best language in the shit';
}
}
class Lol2 extends Lol {
protected static $cache = NULL;
public static function run() {
echo "Lol2\n";
return 'Just lol';
}
}
echo Lol1::onceLol(); // echoing 'PHP is the best language in the shit' from Lol1
echo "\n";
echo Lol2::onceLol(); // echoing 'PHP is the best language in the shit' from Lol1
echo "\n";
echo Lol1::onceLol(); // echoing 'PHP is the best language in the shit' from Lol1
echo "\n";
echo Lol2::onceLol(); // echoing 'PHP is the best language in the shit' from Lol1