Supported Versions: PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8
Escape a string to be used as a shell argument
escapeshellarg(string $arg): string
    public function testExecuteExampleWithoutLoopRunRunsLoopAndExecutesTicks()

    {

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



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

    }
    public function testExecuteExampleWithExplicitLoopRunRunsLoopAndExecutesTicks()

    {

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



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

    }
    public function testExecuteExampleWithExplicitLoopRunAndStopRunsLoopAndExecutesTicksUntilStopped()

    {

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



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

    }
    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);
    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);
    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);
    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);