Supported Versions: PHP 4, PHP 5, PHP 7, PHP 8
Execute an external program
<?php exec(string $command, array &$output = null, int &$result_code = null): string|false
<?php     public function testExecuteExampleWithoutLoopRunRunsLoopAndExecutesTicks()

    {

        $output = exec(escapeshellarg(PHP_BINARY) . ' 01-ticks-loop-class.php');



        $this->assertEquals('abc', $output);

    }
<?php     public function testExecuteExampleWithExplicitLoopRunRunsLoopAndExecutesTicks()

    {

        $output = exec(escapeshellarg(PHP_BINARY) . ' 02-ticks-loop-instance.php');



        $this->assertEquals('abc', $output);

    }
<?php     public function testExecuteExampleWithExplicitLoopRunAndStopRunsLoopAndExecutesTicksUntilStopped()

    {

        $output = exec(escapeshellarg(PHP_BINARY) . ' 03-ticks-loop-stop.php');



        $this->assertEquals('abc', $output);

    }
<?php     public function testExecuteExampleWithUncaughtExceptionShouldNotRunLoop()

    {

        $time = microtime(true);

        exec(escapeshellarg(PHP_BINARY) . ' 11-uncaught.php 2>/dev/null');

        $time = microtime(true) - $time;



        $this->assertLessThan(1.0, $time);
<?php     public function testExecuteExampleWithUndefinedVariableShouldNotRunLoop()

    {

        $time = microtime(true);

        exec(escapeshellarg(PHP_BINARY) . ' 12-undefined.php 2>/dev/null');

        $time = microtime(true) - $time;



        $this->assertLessThan(1.0, $time);
<?php     public function testExecuteExampleWithExplicitStopShouldNotRunLoop()

    {

        $time = microtime(true);

        exec(escapeshellarg(PHP_BINARY) . ' 21-stop.php 2>/dev/null');

        $time = microtime(true) - $time;



        $this->assertLessThan(1.0, $time);
<?php     public function testExecuteExampleWithExplicitStopInExceptionHandlerShouldNotRunLoop()

    {

        $time = microtime(true);

        exec(escapeshellarg(PHP_BINARY) . ' 22-uncaught-stop.php 2>/dev/null');

        $time = microtime(true) - $time;



        $this->assertLessThan(1.0, $time);