PHP의 다양한 기능을 사용한 FizBuzz
11551 단어 PHP
오늘 비회의에서 이야기했다
PHP에는 별게 다 있어요.
PHP 언어 기능
PHP의 제어 구조
안연회의에서 PHP의 기능을 충분히 이용하려는 사람들과 PHP의 진보를 특별히 바라지 않는 사람들 사이에 갭이 존재한다. 이것이 바로 P++사건의 원흉이다.
그럼에도 불구하고 다양한 기능을 사용할 수 있다면 코드의 표현력은 확대될 것이다
PHP의 다양한 기능을 사용한 FizBuzz
주의
이 발표는 작업 중에 허용될 수 있는 PHP 코드 한 줄이 없습니다
그렇긴 하지만 트렁크 구석에서 PHP 코드를 사용해도 도움이 될 것 같아요.
for / foreach
피즈버즈의 클래식.
모처럼 왔으니 한데 섞어라
<?php
foreach (call_user_func(function() {
$a = [];
for ($i = 0; $i <= 100; $i++)
$a[]=$i%3?($i%5?$i:@Fizz):($i%5?@Buzz:@FizzBuzz);
return$a;
}) as $i) {
echo $i, PHP_EOL;;
}
class <?php
trait Fizz { function __toString() { return "Fizz"; } }
trait Buzz { function __toString() { return "Buzz"; } }
trait FizzBuzz { function __toString() { return "FizzBuzz"; } }
trait N { function __toString() { return ltrim(__CLASS__, @_); } }
spl_autoload_register(function ($class) {
$n = ltrim($class, @_);
$trait = null;
if ($n % 3 === 0) $trait .= "Fizz";
if ($n % 5 === 0) $trait .= "Buzz";
$trait = $trait ?? 'N';
eval("final class $class { use $trait; }");
});
foreach (range(1, 100) as $n) {
$class = "_$n";
echo new $class, PHP_EOL;
}
require
fizzbuzz.php<?php global $i ?>
<?= ['FizzBuzz',null,null,'Fizz',null,'Buzz','Fizz',null,
null,'Fizz','Buzz',null,'Buzz',null,null][++$i%15]
?? $i, PHP_EOL ?>
<?php require 'fizzbuzz.php' ?>
<?php require 'fizzbuzz.php' ?>
... (100回書く)
include <?php set_error_handler(function ($_, $msg) {
if (preg_match('/include\((?<n>\d+)\.php\)/', $msg, $m)) {
if ($m['n'] % 3 === 0): ?>Fizz<?php endif;
if ($m['n'] % 5 === 0): ?>Buzz<?php endif;
if ($m['n'] % 3 !== 0 && $m['n'] % 5 !== 0) echo $m['n'];
?>
<?php
};
});
foreach (range(1, 100) as $i) include "$i.php";
Reference
이 문제에 관하여(PHP의 다양한 기능을 사용한 FizBuzz), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/tadsan/items/13fd5b66e9ea4627c22c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
이 발표는 작업 중에 허용될 수 있는 PHP 코드 한 줄이 없습니다
그렇긴 하지만 트렁크 구석에서 PHP 코드를 사용해도 도움이 될 것 같아요.
for / foreach
피즈버즈의 클래식.
모처럼 왔으니 한데 섞어라
<?php
foreach (call_user_func(function() {
$a = [];
for ($i = 0; $i <= 100; $i++)
$a[]=$i%3?($i%5?$i:@Fizz):($i%5?@Buzz:@FizzBuzz);
return$a;
}) as $i) {
echo $i, PHP_EOL;;
}
class <?php
trait Fizz { function __toString() { return "Fizz"; } }
trait Buzz { function __toString() { return "Buzz"; } }
trait FizzBuzz { function __toString() { return "FizzBuzz"; } }
trait N { function __toString() { return ltrim(__CLASS__, @_); } }
spl_autoload_register(function ($class) {
$n = ltrim($class, @_);
$trait = null;
if ($n % 3 === 0) $trait .= "Fizz";
if ($n % 5 === 0) $trait .= "Buzz";
$trait = $trait ?? 'N';
eval("final class $class { use $trait; }");
});
foreach (range(1, 100) as $n) {
$class = "_$n";
echo new $class, PHP_EOL;
}
require
fizzbuzz.php<?php global $i ?>
<?= ['FizzBuzz',null,null,'Fizz',null,'Buzz','Fizz',null,
null,'Fizz','Buzz',null,'Buzz',null,null][++$i%15]
?? $i, PHP_EOL ?>
<?php require 'fizzbuzz.php' ?>
<?php require 'fizzbuzz.php' ?>
... (100回書く)
include <?php set_error_handler(function ($_, $msg) {
if (preg_match('/include\((?<n>\d+)\.php\)/', $msg, $m)) {
if ($m['n'] % 3 === 0): ?>Fizz<?php endif;
if ($m['n'] % 5 === 0): ?>Buzz<?php endif;
if ($m['n'] % 3 !== 0 && $m['n'] % 5 !== 0) echo $m['n'];
?>
<?php
};
});
foreach (range(1, 100) as $i) include "$i.php";
Reference
이 문제에 관하여(PHP의 다양한 기능을 사용한 FizBuzz), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/tadsan/items/13fd5b66e9ea4627c22c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
<?php
foreach (call_user_func(function() {
$a = [];
for ($i = 0; $i <= 100; $i++)
$a[]=$i%3?($i%5?$i:@Fizz):($i%5?@Buzz:@FizzBuzz);
return$a;
}) as $i) {
echo $i, PHP_EOL;;
}
<?php
trait Fizz { function __toString() { return "Fizz"; } }
trait Buzz { function __toString() { return "Buzz"; } }
trait FizzBuzz { function __toString() { return "FizzBuzz"; } }
trait N { function __toString() { return ltrim(__CLASS__, @_); } }
spl_autoload_register(function ($class) {
$n = ltrim($class, @_);
$trait = null;
if ($n % 3 === 0) $trait .= "Fizz";
if ($n % 5 === 0) $trait .= "Buzz";
$trait = $trait ?? 'N';
eval("final class $class { use $trait; }");
});
foreach (range(1, 100) as $n) {
$class = "_$n";
echo new $class, PHP_EOL;
}
require
fizzbuzz.php<?php global $i ?>
<?= ['FizzBuzz',null,null,'Fizz',null,'Buzz','Fizz',null,
null,'Fizz','Buzz',null,'Buzz',null,null][++$i%15]
?? $i, PHP_EOL ?>
<?php require 'fizzbuzz.php' ?>
<?php require 'fizzbuzz.php' ?>
... (100回書く)
include <?php set_error_handler(function ($_, $msg) {
if (preg_match('/include\((?<n>\d+)\.php\)/', $msg, $m)) {
if ($m['n'] % 3 === 0): ?>Fizz<?php endif;
if ($m['n'] % 5 === 0): ?>Buzz<?php endif;
if ($m['n'] % 3 !== 0 && $m['n'] % 5 !== 0) echo $m['n'];
?>
<?php
};
});
foreach (range(1, 100) as $i) include "$i.php";
Reference
이 문제에 관하여(PHP의 다양한 기능을 사용한 FizBuzz), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/tadsan/items/13fd5b66e9ea4627c22c
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
<?php global $i ?>
<?= ['FizzBuzz',null,null,'Fizz',null,'Buzz','Fizz',null,
null,'Fizz','Buzz',null,'Buzz',null,null][++$i%15]
?? $i, PHP_EOL ?>
<?php require 'fizzbuzz.php' ?>
<?php require 'fizzbuzz.php' ?>
... (100回書く)
<?php set_error_handler(function ($_, $msg) {
if (preg_match('/include\((?<n>\d+)\.php\)/', $msg, $m)) {
if ($m['n'] % 3 === 0): ?>Fizz<?php endif;
if ($m['n'] % 5 === 0): ?>Buzz<?php endif;
if ($m['n'] % 3 !== 0 && $m['n'] % 5 !== 0) echo $m['n'];
?>
<?php
};
});
foreach (range(1, 100) as $i) include "$i.php";
Reference
이 문제에 관하여(PHP의 다양한 기능을 사용한 FizBuzz), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tadsan/items/13fd5b66e9ea4627c22c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)