Skip to content

PHP 7.4 Support in VS Code#

PHP Tools for VS Code#

PHP Tools includes support for the new PHP 7.4, including:

  • Editor support for all PHP 7.4 syntax such as:
  • Arrow Functions
  • PHP 7.4 Array support updates:
    • Spread arrays
    • Array returns
    • PHPDoc updates including array commenting
  • Intellisense updates that include Serialization support
  • Notifying users on depreciated functions

Intellisense Updates#

To keep up with the PHP 7.4 syntax, PHP Tools has been updated to handle all syntax updates. Some of these updates:

  • Arrow functions (using the fn command)
  • Typed Properties
  • Array references
  • Serialized objects.

Arrow Functions#

Arrow functions, otherwise known as anonymous functions, allow developers to quickly define a function, the parameters, and the return value in one line. For example:

$squarethis = 9;

$squared = fn($square) => $square * $square;

echo "<p>Number to be squared: $squarethis.</p>";

echo "<p>Squared number: ." $squared($squarethis).".</p>";

Typed Properties#

PHP, like other scripted languages, has supported the ability to have variables which its data type (integer, string, etc) was derived based on the context. So setting a variable from $i = 5; and then $i = "5Bob"; are equally valid.

PHP 7.4 allows more control with scalar types and return values, allowing user to specify exactly what kind of data they are receiving and sending back. PHP Tools is able to parse this syntax, and even return errors when detected. For example:

$squarethis = 9;

$squarebad = "Test";

function SquareValue(int $newNumber) : int
{
    return $newNumber * $newNumber;    
}

echo "<p>Using SquareValue function: " . SquareValue($squarebad) . ".</p>";

Arrays#

Array Functions and Array Commenting#

PHP Tools ability to resolved typed properties for variables and functions extends to arrays as well, and will issue warnings when arrays are expected and a different typed value is submitted:

function ReturnArrayofValues(int $countdown) : array
{
    $list = array();
    for (; $countdown >= 0; $countdown--)
    {
        $list[] = $countdown;
    }
    return $list;
}


function PrintArrayofValues(array $list)
{
    echo "<p>";
    foreach($list as $item)
    {
        echo "<br>$item";
    }
    echo "</p>";
}

PrintArrayofValues(ReturnArrayofValues(10));

Spread Arrays#

A new feature in PHP 7.4 is spread arrays, similar to how they work in JavaScript. For example, previously arrays would have to be copied and expanded like so:

    $a = array(1, 2, 3);
    $b = $a;
    $b[] = 4;
    $b[] = 5;
    $b[] = 6;
    print_r($b);
    //output:
    //Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 )

The new spread method allows users to easily copy arrays into other arrays, or reference entire array elements at once:

    $c = array(1, 2, 3);
    $d = [...$c, 4, 5, 6];
    print_r($d);
    //output:
    //Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 )

Serialize signatures#

With PHP 7.4, the new standard for serialization is based on two new magic functions that developers can define within their class:

  • __serialize: Returns an array value that can then be parsed into a text string.
  • __unserialize: Takes the serialized array object and assigns the class members value from that array.

With PHP Tools, developers are provided with helpful information processing these new magic functions. For example:

Serialize function

Unserialize function

Depreciated Function Reporting#

PHP 7.4 has depreciated a number of functions. Rather than guess what functions have been depreciated, PHP Tools lets you know which are still valid, and which need to go from your code:. Items that have been tagged with @depreciated will have an error display in the IDE, and will show that status on on a mouse-over:

Depreciated Code


Related Articles#

PHP 7.4 support for Visual Studio

Debugging PHP in VS Code

Phar archives in VS Code