関数
戻り値のリファレンスを返す関数
function &foo() {
    var $bar = 1;
    return $bar;
}
var $hoge = &foo()
型を指定した関数の宣言
function foo(Car $car): Array {
class
Document
マジックメソッドはpythonの特殊メソッドのようなもの
class Base
{
    public $foo;
    
    public function __construct($foo='foo')
    {
        $this->foo = $foo;
    }
    
    public function foo()
    {
        echo 'foo';
    }
}
class Car extends Base
{
    use FooTrait, BarTrait;
    
    const NAME = 'name';
    
    public $bar;
    public static $car_static = 'foo';
    
    public function __construct($foo)
    {
        parent::__construct($foo);
        $this->bar = function() {
            return 42;
        };
    }
    
    public function foo()
    {
        echo self::$car_static;
    }
    
    // サブクラスでオーバーライドされない
    final public function foo()
    {
        echo self::$car_static;
    }
}
$name = 'Car';
echo $name::$car_static;
$car = new Car('bar');
抽象クラス
abstract class Foo
{
    abstract public function bar(string $text): Array;
}
インターフェイス
interface Foo
{
    public function bar();
    public function hoge(): string;
}
スコープ定義演算子(::) *
// 定数、クラス変数、クラスメソッド
ClassObj::foo
// 自身の定数、クラス変数、クラスメソッド
self::foo
// 親クラスの定数、クラス変数、クラスメソッド
parent::foo
trait
構文
Document
PHPではlist()を使うとes2015のようにdestructすることができる
foreach ($arr as $k => $v) {
}
if ($a > $b) {
} elseif ($a == $b) {
} else {
}
組み込み関数
- array compact ( mixed $varname1 [, mixed $… ] ) link
指定した文字列をキーに、それを名前に持つローカル変数を値にした連想配列を返す 
$a = 1;
$b = 2;
$c = 3;
compact('a', 'b', 'c');
/*
[
    'a' => 1,
    'b' => 2,
    'c' => 3
]
*/
- 
    
array list ( mixed $var1 [, mixed $… ] )はアンパック代入をすることができる。
 - 
    
環境変数を取得する
 
export a=1
echo getenv('a');
// => 1
- 
    
ctype_digit($text)はすべて数字かどうか
 - 
    
ファイルに追記
file_put_contents 
file_put_contents("foo.txt", "bar\n", FILE_APPEND);
use *
指定した名前空間にある変数やクラスや関数をインポートする 特に何も指定しない場合は全部インポートされる