1. 多くのマジック定数があります。要約すると、
A は、スクリプトの実行時の場所または名前を識別します。
_LINE_ 現在の行番号を返します。
_FILE_ は、現在のスクリプトの完全なパスとファイル名を返します。絶対パス
_FUNCTION_ 呼び出される関数を返します 定義されたときの名前 (大文字と小文字を区別します)
_CLASS_ クラス名、カテゴリが定義されたときの名前を返します (大文字と小文字を区別します)
_METHOD_ クラスのメンバー メソッド名 (大文字と小文字を区別します)
class MagicTest {
// 現在の関数の名前を返します
use using using through using through ‐ ‐ ‐ ‐ return __FUNCTION__;
//現在のメソッドの名前を返します
{U __METHOD__ を返す;
}}}
"" "_:" .__ 行 __. "& LT;";
Echo "現在の PHP スクリプトの完全なパス:" .__ ファイル __. ;";
echo "現在実行されているクラスの名前: ".MagicTest::test_class()."
";
echo "現在実行されている関数の名前: ".MagicTest::test_function(). "
echo "現在のクラスのメソッド名: ".MagicTest::test_method()."
";
OOP にはマジックもあります
_get() _set()、_call ()、存在しない属性または非表示の属性を書き込もうとすると、
class myShop {
private $p = array(); などの _set() メソッドが実行されます。
function __set($ name, $value) { //属性名と値を取得します
echo "set::$name:$value
"
$this->p[$name] = $value;
function __get($name) { // 属性名を取得します
print "get::$name
"
return array_key_exists($name,$this->p); this->p [$name] : null;
}
}
$shop = new MyShop();
$shop->pear = 3; >pear++;
echo "apple=". "
"; >
2 CLONE() in PHP
class MyClass {
$var = 1; }
$obj1 = new MyClass();
$obj2-> var = 2;
print $obj1->var;
?> PHP4 の上記の出力 1 では、$obj2 はオブジェクトのコピーを作成します。 PHP5では$obj1はオブジェクト参照として扱われるため、$obj2の値が変更されると、実際に変更される
は$objの参照となるため、2が出力されます。
また、== は 2 つのオブジェクトの内容を比較し、=== はオブジェクトの文 C、つまり参照先のアドレスを比較することにも注意してください