Today I Learned: PHP

I had the opportunity to work on some PHP this week and picked up a few new tricks that are very different from JavaScript:

Computing the difference in arrays

$array1 = array("a" => "green", "red", "blue", "red");
$array2 = array("b" => "green", "yellow", "red");

$result = array_diff($array1, $array2);

Computing the intersection of arrays

$array1 = array("a" => "green", "red", "blue");
$array2 = array("b" => "green", "yellow", "red");

$result = array_intersect($array1, $array2);

Inherit a variable inside an anonymous function

$message = 'world';
$example = function () use ($message) {
    return "hello $message";
};

Reference a private function as a callback

class MyClass {

    public static function getDifference() {
        $array1 = array("a" => "green", "red", "blue");
        $array2 = array("b" => "green", "yellow", "red");

        $result = array_udiff($array1, $array2, array($this, 'filterById'));    
    }

    private function filterById($a, $b) {}
}

Reference static members of a class using self

class MyClass {
    public static $url = "https://petermekhaeil.com/";

    public static function getUrl() {
        return self::$url;
    }
}