Слегка расширенный (показывает cl аргумент) хелловорлд:
Раз:
class System {
public static function out(string $string) {
$handle = fopen('php://stdout', 'w');
fwrite($handle, $string.PHP_EOL);
fclose($handle);
}
public static function argv() {
return @$_SERVER['argv'][1] ? : '';
}
}
class HelloWorld {
public static function main(){
System::out('Hello World! Your argument: '. System::argv() );
}
}
HelloWorld::main();
И два:
function main(){
function printStdOut(string $string) {
function stream($handle, string $text) {
$getHandle = function() use ($handle) {
return $handle;
};
fwrite($getHandle(), $text."\n");
fclose($getHandle());
}
stream(fopen('php://stdout', 'w'), $string);
}
function getArgv() {
return @$_SERVER['argv'][1] ? : '';
}
printStdOut('Hello World! Your argument: ' . getArgv() );
}
main();
Может перейти в обучении (скрипто-ЯП прежде всего) на такие вот первые программы-хелловолды? Ну посудите сами: что такое echo/print/etc «Hello World»? Что это за объяснение такое - языковая конструкция, которая "выводит одну или более строк" (из оф.док.)? Или просто "выводит текст" (науч.поп.)? Куда выводит, как выводит, какую строку. Ничего не понятно, пользы мало.
А если сразу начать разбирать вышеприведенные хелловолды, то вырисовывается много (весьма важных) тем для изучения начинающему программисту.
Как вариант: можно ли рассматривать написание изоморфных (указанным выше) хелловорлдов в других ЯП, как быстрый старт, в изучении этих самых ЯП опытным программистом? Насколько это будет продуктивно?