面向对象

来源:互联网 发布:录视频软件下载 编辑:程序博客网 时间:2024/06/08 16:23

面向对象

常量

可以把在类中始终保持不变的值定义为常量。在定义和使用常量的时候不需要使用 $ 符号。
常量的值必须是一个定值,不能是变量,类属性,数学运算的结果或函数调用。
自 PHP 5.3.0 起,可以用一个变量来动态调用类。但该变量的值不能为关键字(如 self,parent 或 static)。

常量的用法

<?phpclass MyClass{const constant = '常量值'; function showConstant() {echo  self::constant . PHP_EOL; }}echo MyClass::constant . PHP_EOL;$classname = "MyClass";echo $classname::constant . PHP_EOL;?$class = new MyClass();$class->showConstant();echo $class::constant;?>

Static 关键字

声明类属性或方法为 static(静态),就可以不实例化类而直接访问。
静态属性不能通过一个类已实例化的对象来访问(但静态方法可以)。
由于静态方法不需要通过对象即可调用,所以伪变量 $this >在静态方法中不可用。
静态属性不可以由对象通过 -> 操作符来访问。
在 PHP ?中,可以用一个变量来动态调用类。但该变量的值不能为关键字

1、关键字 self,parent 或 static。

代码<?phpclass Foo {public static $my_static = 'foo';public function staticValue() {return self::$my_static; }}print Foo::$my_static . PHP_EOL;$foo = new Foo();print $foo->staticValue() . PHP_EOL;?>

is_callable — 检测参数是否为合法的可调用结构

__call() 方法用于监视错误的方法调用。
为了避免当调用的方法不存在时产生错误,可以使用 __call() >方法来避免。该方法在调用的方法不存在时会自动调用,程序仍会继续执行>下去。

语法:

function __call(string $function_name, array $arguments){}该方法有两个参数,第一个参数 $function_name 会自动接收不存在的方法名,第二个 $args 则以数组的方式接收不存在方法的多个参数。在类里面加入:function __call($function_name, $args){echo "你所调用的函数:$function_name(参数:<br />";var_dump($args);echo ")不存在!";}当调用一个不存在的方法时(如 test() 方法):$p1=new Person();$p1->test(2,"test");

输出的结果如下:

你所调用的函数:test(参数:array(2) { [0]=>int(2) [1]=>string(4) "test"})不存在、class Test1{ public function fun1(){ echo "fun1()........."; } public function __call($name,$params){  echo "{$name}()...."; }}$t1 = new Test1();$t1 -> fun1();$t1 -> fun2();
原创粉丝点击