generated at
PHPのScope


3つある
local scope
普通にlocalのscopeのことだが、他の言語と異なる
global scope
普通にglobalのscopeのこと
super global
特殊なやつ
e.g. $GLOBALS




class内のmethod間も空間を共有してるっぽい?
こういうふうにmethod内で関数を定義すると、別のmethodで同名の関数は定義できない
php
class Hoge { private function a($before, $after) { function f($a, $b) { // f return $a->id <=> $b->id; } return array_udiff($a, $b, 'f'); } private function b($before, $after) { function f($a, $b) { // fは重複しているのでエラー return $a->id <=> $b->id; } ... } }
まあmethod内で関数定義することなんてないと思うけどmrsekut



global変数
php
$a = 1; $b = 2; function Sum() { global $a, $b; // `global`をつけることで、globalにアクセスできる $b = $a + $b; // 3 print_r($GLOBALS); // 全てのglobal変数を取得 }
すごい仕様だなー
変数名かぶってたりしたらどうなるんや