숫자를 1에서 x로 인쇄하는 프로그램을 작성하십시오. 그러나 숫자 대신 3 개의 인쇄 "fizz"의 배수 및 5 개의 인쇄 "버즈"의 배수. 3과 5의 배수 인 숫자의 경우 "fizzbuzz"를 인쇄합니다.
여기서는 새 콘솔 애플리케이션을 생성하고 fizzcommand ()를 등록합니다. 이 파일을 실행할 수 있도록하는 것을 잊지 마십시오.
<span>composer require symfony/console
</span>
<span><span><?php
</span></span><span><span>declare(strict_types=1);
</span></span><span>
</span><span><span>namespace FizzBuzz;
</span></span><span>
</span><span><span>class Fizzbuzz{
</span></span><span>
</span><span> <span>public function isFizz(int $value): bool{
</span></span><span> <span>if($value % 3 === 0){
</span></span><span> <span>return true;
</span></span><span> <span>}
</span></span><span> <span>return false;
</span></span><span> <span>}
</span></span><span>
</span><span> <span>public function isBuzz(int $value): bool{
</span></span><span> <span>if($value % 5 === 0){
</span></span><span> <span>return true;
</span></span><span> <span>}
</span></span><span> <span>return false;
</span></span><span> <span>}
</span></span><span>
</span><span> <span>public function calculateFizzBuzz(int $number): bool{
</span></span><span> <span>if($this->isFizz($number) && $this->isBuzz($number)){
</span></span><span> <span>echo "FizzBuzz \n";
</span></span><span> <span>return true;
</span></span><span> <span>}
</span></span><span> <span>if($this->isFizz($number)){
</span></span><span> <span>echo "Fizz \n";
</span></span><span> <span>return true;
</span></span><span> <span>}
</span></span><span> <span>if($this->isBuzz($number)){
</span></span><span> <span>echo "Buzz \n";
</span></span><span> <span>return true;
</span></span><span> <span>}
</span></span><span> <span>echo $number . "\n";
</span></span><span> <span>return true;
</span></span><span> <span>}
</span></span><span>
</span><span> <span>public function firstNFizzbuzz(int $maxValue): void{
</span></span><span> <span>$startValue = 1;
</span></span><span>
</span><span> <span>while($startValue <= $maxValue){
</span></span><span> <span>$this->calculateFizzBuzz($startValue);
</span></span><span> <span>$startValue++;
</span></span><span> <span>}
</span></span><span> <span>}
</span></span><span><span>}
</span></span>
<span><span><?php
</span></span><span>
</span><span><span>namespace FizzBuzz;
</span></span><span>
</span><span><span>use Symfony<span>\Component\Console\Command\Command</span>;
</span></span><span><span>use Symfony<span>\Component\Console\Input\InputInterface</span>;
</span></span><span><span>use Symfony<span>\Component\Console\Output\OutputInterface</span>;
</span></span><span><span>use Symfony<span>\Component\Console\Input\InputArgument</span>;
</span></span><span>
</span><span><span>use FizzBuzz<span>\Fizzbuzz</span>;
</span></span><span>
</span><span><span>class FizzCommand extends Command{
</span></span><span>
</span><span> <span>protected function configure(){
</span></span><span> <span>$this->setName("FizzBuzz:FizzBuzz")
</span></span><span> <span>->setDescription("Runs Fizzbuzz")
</span></span><span> <span>->addArgument('Limit', InputArgument<span>::</span>REQUIRED, 'What is the limit you wish for Fizzbuzz?');
</span></span><span> <span>}
</span></span><span>
</span><span> <span>protected function execute(InputInterface $input, OutputInterface $output){
</span></span><span>
</span><span> <span>$fizzy = new FizzBuzz();
</span></span><span> <span>$input = $input->getArgument('Limit');
</span></span><span>
</span><span> <span>$result = $fizzy->firstNFizzbuzz($input);
</span></span><span> <span>}
</span></span><span>
</span><span><span>}
</span></span>
<span>composer require symfony/console
</span>
위 내용은 기본을 넘어 Symfony 콘솔 - 도우미 및 기타 도구의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!