zephirの変数のついて
どうも、こんにちは。
最近zephirを触ってるんですけど、zephirの仕様について学んだことを書きます。
zephirで変数を使用するには宣言が必要です。コンパイラっぽいですねぇ
宣言
一行にまとめて
var a, b, c;
複数行で
var a; var b; var c;
宣言時に初期値の代入も可能です。
var a = "hello", b = 0, c = 1.0; int d = 50, bool some = ture;
値のスコープ
変数の宣言はメソッド内で行わないといけないみたいです。
public function someMethod1() { int a = 1, b = 2; return a + b; }
ただし、メソッド外で変数宣言を行う場合は、アクセス修飾子のみつけて変数を宣言すれば大丈夫
class Router { private s; protected t; public u;
その際に関数内で変数を使用するにはthisをつけて使用します。
また変数に値を代入するときはletを付ける必要みたいです。
public function __construct(int a) { let this->t = a; }
さらにzephirではPHPのスーパーグローバル変数を使用することができる
public function Get(string g) { return _GET[g]; } public function Server(string g) { return _SERVER[g]; }
型について
ダイナミックタイプ
varはPHPの変数と同じふるまいをしてくれて、値を型を気にせずに自由に代入することが可能です。
public function someMethod2() { var a = "Hello"; var res; let res = a; let res = res . " World"; let res = 10; return res; }
ダイナミックタイプで使用できる型 float double string array object resource null
- boolean
- integer
- float
- double
- string
- array
- object
- resource
- null
- boolean
- integer
- unsigned integer
- char
- unsigned char
- long
- unsigned long
- float
- double
- string
- array
スタティックタイプ
スタティックタイプは変数宣言時に型を宣言し、その型にそった値しか代入することができません。 スタティックタイプで宣言できる型
簡単ではありますが、zephirの変数の利用と仕様についてでした。