PHPダイナミック作成プロパティとメソッド、オブジェクトのコピー、オブジェクトの比較、指定したファイルのロード、クラスファイルの自動ロード、ネーミングスペース
5737 ワード
PHP前言:
•プロパティとメソッドを動的に作成
•オブジェクトのコピー
•オブジェクトの比較
•指定したファイルのロード
•クラスファイルの自動ロード
•ネーミングスペース
例
1、クラスに関する知識点3(属性とメソッドを動的に作成)
class/class3.php
2、クラスに関する知識点4(オブジェクトのコピー、オブジェクトの比較)
class/class4.php
3、クラスに関する知識点5(指定したファイルをロードし、自動的にクラスファイルをロードする)
class/class5.php
4、クラスに関する知識点6(ネーミングスペース)
class/class6.php
以上、編集者がご紹介したPHPのプロパティと方法、オブジェクトのコピー、オブジェクトの比較、指定したファイルのロード、クラスファイルの自動ロード、ネーミングスペースに関する紹介ですが、皆さんの役に立つことを願っています.
•プロパティとメソッドを動的に作成
•オブジェクトのコピー
•オブジェクトの比較
•指定したファイルのロード
•クラスファイルの自動ロード
•ネーミングスペース
例
1、クラスに関する知識点3(属性とメソッドを動的に作成)
class/class3.php
";
}
// __get , (private)
public function __get($name)
{
echo "__get \$name: {$name}";
echo "
";
return 999;
}
}
$objClass1 = new Class1();
// (private) , __set
$objClass1->property1 = wanglei; // private ,
// (private) , __get
echo $objClass1->property2;
echo "
";
// ( php )
class Class2
{
// __call , (private)
public function __call($name, $arguments)
{
echo "__call \$name: {$name}, \$arguments: " . implode(', ', $arguments);
echo "
";
}
// __callStatic , (private)
public static function __callStatic($name, $arguments)
{
echo "__callStatic \$name: {$name}, \$arguments: " . implode(', ', $arguments);
echo "
";
}
}
$objClass2 = new Class2();
// (private) , __call
echo $objClass2->method1("aaa", "bbb");
// (private) , __callStatic
echo Class2::method2("aaa", "bbb");
2、クラスに関する知識点4(オブジェクトのコピー、オブジェクトの比較)
class/class4.php
";
}
}
$objClass1 = new Class1();
// clone , __clone
$objClass2 = clone $objClass1;
// clone (shallow copy), , ( deep copy )
echo $objClass2->field1; // output: field1
echo "
";
echo $objClass2->field2; // output: field2
echo "
";
// , “==” ,
if ($objClass1 == $objClass2)
{
echo '$objClass1 == $objClass2';
echo "
";
}
// , , “===”
if ($objClass1 !== $objClass2)
{
echo '$objClass1 !== $objClass2';
echo "
";
}
// , “===”
if ($objClass1 === $objClass1)
{
echo '$objClass1 === $objClass1';
echo "
";
}
// , “===”
$objClass3 = &$objClass1;
if ($objClass1 === $objClass3)
{
echo '$objClass1 === $objClass3';
echo "
";
}
3、クラスに関する知識点5(指定したファイルをロードし、自動的にクラスファイルをロードする)
class/class5.php
name;
echo "
";
class/MyClass.class.php
4、クラスに関する知識点6(ネーミングスペース)
class/class6.php
";
}
class MyClass
{
public function myMethod()
{
echo "MyNamespace1 MyClass myMethod";
echo "
";
}
}
}
// ,
namespace Sub1\Sub2\MyNamespace2
{
const MyConst = "MyNamespace2 MyConst";
function myFunction()
{
echo "MyNamespace2 myFunction";
echo "
";
}
class MyClass
{
public function myMethod()
{
echo "MyNamespace2 MyClass myMethod";
echo "
";
}
}
}
namespace MyNamespace3
{
//
echo \MyNamespace1\MyConst;
echo "
";
//
\MyNamespace1\myFunction();
//
$obj1 = new \MyNamespace1\MyClass();
$obj1->myMethod();
}
namespace MyNamespace4
{
// use
use \Sub1\Sub2\MyNamespace2;
// , use
echo MyNamespace2\MyConst;
echo "
";
MyNamespace2\myFunction();
$obj1 = new MyNamespace2\MyClass();
$obj1->myMethod();
}
namespace MyNamespace5
{
// use ,
use \Sub1\Sub2\MyNamespace2 as xxx;
// ,
echo xxx\MyConst;
echo "
";
xxx\myFunction();
$obj1 = new xxx\MyClass();
$obj1->myMethod();
}
以上、編集者がご紹介したPHPのプロパティと方法、オブジェクトのコピー、オブジェクトの比較、指定したファイルのロード、クラスファイルの自動ロード、ネーミングスペースに関する紹介ですが、皆さんの役に立つことを願っています.