PHPの構文や関数メモ

関数

戻り値のリファレンスを返す関数

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


構文

Document
PHPではlist()を使うとes2015のようにdestructすることができる

foreach ($arr as $k => $v) {

}


if ($a > $b) {

} elseif ($a == $b) {

} else {

}


組み込み関数

$a = 1;
$b = 2;
$c = 3;

compact('a', 'b', 'c');
/*
[
    'a' => 1,
    'b' => 2,
    'c' => 3
]
*/


export a=1

echo getenv('a');
// => 1


file_put_contents("foo.txt", "bar\n", FILE_APPEND);

use *

指定した名前空間にある変数やクラスや関数をインポートする   特に何も指定しない場合は全部インポートされる


PHPメモ