面向对象
来源:互联网 发布:录视频软件下载 编辑:程序博客网 时间: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();
阅读全文
1 0
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- 面向对象
- shell普通数组和关联数组的区别
- cmd窗口进行adb logcat时出现中文乱码问题的解决办法
- 操作文件
- python中defaultdict方法的使用【使字典默认的值为指定值】
- MySQL 获得当前日期时间 函数
- 面向对象
- Java 类文件结构实例分析
- spring boot部署中一个斜杠引发的血案--org.thymeleaf.exceptions.TemplateInputException
- Maven常用命令
- 如何理解云计算?很简单,就像吃货想吃披萨了...
- Android敏捷开发、CI(持续集成)探究
- hdu 1596 find the safest road (最短路径dijkstra SPFA Floyd)
- u-boot 编译改动了那些文件(2)-make all
- 文件上传