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