这篇文章主要介绍了PHP动态地创建属性和方法, 对象的复制, 对象的比较, 加载指定的文件, 自动加载类文件, 命名空间 的相关资料,需要的朋友可以参考下
PHP前言:
•动态地创建属性和方法
•对象的复制
•对象的比较
•加载指定的文件
•自动加载类文件
•命名空间
示例
1、类的相关知识点 3(动态地创建属性和方法)
class/class3.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | <?php
class Class1
{
public function __set( $name , $value )
{
echo "__set \$name: {$name}, \$value: {$value}" ;
echo "<br />" ;
}
public function __get( $name )
{
echo "__get \$name: {$name}" ;
echo "<br />" ;
return 999;
}
}
$objClass1 = new Class1();
$objClass1 ->property1 = wanglei;
echo $objClass1 ->property2;
echo "<br />" ;
class Class2
{
public function __call( $name , $arguments )
{
echo "__call \$name: {$name}, \$arguments: " . implode(', ', $arguments );
echo "<br />" ;
}
public static function __callStatic( $name , $arguments )
{
echo "__callStatic \$name: {$name}, \$arguments: " . implode(', ', $arguments );
echo "<br />" ;
}
}
$objClass2 = new Class2();
echo $objClass2 ->method1( "aaa" , "bbb" );
echo Class2::method2( "aaa" , "bbb" );
|
Copier après la connexion
2、类的相关知识点 4(对象的复制,对象的比较)
class/class4.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | <?php
class Class1
{
public $field1 = "field1" ;
public $field2 = "field2" ;
function __clone()
{
echo "__clone" ;
echo "<br />" ;
}
}
$objClass1 = new Class1();
$objClass2 = clone $objClass1 ;
echo $objClass2 ->field1;
echo "<br />" ;
echo $objClass2 ->field2;
echo "<br />" ;
if ( $objClass1 == $objClass2 )
{
echo ' $objClass1 == $objClass2 ';
echo "<br />" ;
}
if ( $objClass1 !== $objClass2 )
{
echo ' $objClass1 !== $objClass2 ';
echo "<br />" ;
}
if ( $objClass1 === $objClass1 )
{
echo ' $objClass1 === $objClass1 ';
echo "<br />" ;
}
$objClass3 = & $objClass1 ;
if ( $objClass1 === $objClass3 )
{
echo ' $objClass1 === $objClass3 ';
echo "<br />" ;
}
|
Copier après la connexion
3、类的相关知识点 5(加载指定的文件,自动加载类文件)
class/class5.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | <?php
function __autoload( $class_name )
{
require_once $class_name . '. class .php';
}
$obj = new MyClass();
echo $obj ->name;
echo "<br />" ;
class /MyClass. class .php
<?php
class MyClass
{
public $name = "webabcd" ;
}
|
Copier après la connexion
4、类的相关知识点 6(命名空间)
class/class6.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | <?php
namespace MyNamespace1
{
const MyConst = "MyNamespace1 MyConst" ;
function myFunction()
{
echo "MyNamespace1 myFunction" ;
echo "<br />" ;
}
class MyClass
{
public function myMethod()
{
echo "MyNamespace1 MyClass myMethod" ;
echo "<br />" ;
}
}
}
namespace Sub1\Sub2\MyNamespace2
{
const MyConst = "MyNamespace2 MyConst" ;
function myFunction()
{
echo "MyNamespace2 myFunction" ;
echo "<br />" ;
}
class MyClass
{
public function myMethod()
{
echo "MyNamespace2 MyClass myMethod" ;
echo "<br />" ;
}
}
}
namespace MyNamespace3
{
echo \MyNamespace1\MyConst;
echo "<br />" ;
\MyNamespace1\myFunction();
$obj1 = new \MyNamespace1\MyClass();
$obj1 ->myMethod();
}
namespace MyNamespace4
{
use \Sub1\Sub2\MyNamespace2;
echo MyNamespace2\MyConst;
echo "<br />" ;
MyNamespace2\myFunction();
$obj1 = new MyNamespace2\MyClass();
$obj1 ->myMethod();
}
namespace MyNamespace5
{
use \Sub1\Sub2\MyNamespace2 as xxx;
echo xxx\MyConst;
echo "<br />" ;
xxx\myFunction();
$obj1 = new xxx\MyClass();
$obj1 ->myMethod();
}
|
Copier après la connexion
以上所述是小编给大家介绍的PHP动态地创建属性和方法, 对象的复制, 对象的比较, 加载指定的文件, 自动加载类文件, 命名空间 的相关介绍,希望对大家有所帮助!