您当前的位置: 首页 > 学无止境 > 网站建设 网站首页网站建设
燕十八面向对象-类常量魔术变量与延期绑定
发布时间:2015-09-05 10:27:11编辑:雪饮阅读()
收获:常量与类常量、常见的常量魔术方法、self与static在类继承中判断当前所在类的异同
常量与类常量:
<?php
header("Content-type:text/html;charset=utf-8;");
/*
常量在页面中属于全局属性,且一旦定义将无法更改
常量定义:define有3个参数,第一个为常量名,第二个为常量值,第三个为常量是否区分大小写
*/
define("clm","clz");
class human{
/*类常量前面无须权限修饰符
权限默认是public即外部也可访问
*/
const head=1;
public static function show(){
echo clm;
}
}
human::show();
echo "<br/>";
echo human::head;
?>
常见的常量魔术方法:
<?php
header("Content-type:text/html;charset=utf-8;");
echo "当前路径(直达文件名)是:".__FILE__."<br/>";
echo "当前路径是(不包含文件名):".__DIR__;
class human{
public static function t(){
echo "<br/>当前类名是:";
echo __CLASS__;
echo "你正在使用".__CLASS__."类中的方法".__METHOD__;
}
}
human::t();
?>
self与static在类继承中判断当前所在类的异同:
<?php
header("Content-type:text/html;charset=utf-8;");
class human{
public static function b(){
self::a();
}
public static function b2(){
static::a();
}
}
class stu extends human{
public static function a(){
echo "我是子类的a方法";
}
}
class stu2 extends human{
/*子类没有a方法会怎样呢?*/
}
stu::b();
/*
由该脚本运行结果可知:
self:判断当前类是相对的,不会判断到调用源头(这里及以下都指子类)所在类,即便相对类中没有被调用的方法也不会去源头类调用(可以删除相对类中的方法并在源头类中声明同名方法测试)
static:判断当前类是绝对的,给你返回调用源头类,但若调用源头类没有被调用方法时则会找到相对类中
被调用的同名方法
*/
?>
关键字词:类常量,延期绑定,个人博客