登录  /  注册
博主信息
博文 32
粉丝 0
评论 0
访问量 23214
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
类的声明实例化,属性重载,静态成员声明与访问——2018年9月10日21点50分
Nevermore的博客
原创
508人浏览过

实例

<?php
echo '实例化类:'.'<br>';
class Homework1{}
$h1=new  Homework1();
$h1->name='我不是';
$h1->behavior='我没有';
$h1->res='别乱说';
echo $h1->name.$h1->behavior.$h1->res;
$h1->test= function(){ return '素质三连';};
echo call_user_func($h1->test);

echo '<hr>';
echo '类常量与属性的重载:'.'<br>';
class  Homework2
{
    public $var1;
    protected $var2;
    private  $var3;
    public function __construct($var1,$var2,$var3)
    {
        $this->var1 = $var1;
        $this->var2 = $var2;
        $this->var3 = $var3;
        echo $this->show();
    }
    public function __get($name)
    {      if($name=='var3')
          {
              return '无权查看';
          }
          else  return $this->$name;
    }
    public  function  show()
    {
        return $this->var1.$this->var2.$this->var3;
    }
    public function __set($name,$value)
    {
        if($name=='var2')
        {
            return false;
        }
        else  return $this->$name=$value;
    }
    public function  __isset($name)
    {
       if($name=='var2')
       {
           return false;
       }
       else return isset($this->$name);
    }
}

$h2=new Homework2('我是谁?','我在哪?','我在干什么?');
echo '<br>';
echo $h2->var3.'<br>';
$h2->var2='燃烧我的卡路里';
echo $h2->var2.'<br>';
 echo  isset($h2->var2)?'存在':'不存在';

 echo '<hr>';
 echo '类的继承与方法重写:'.'<br>';
 class Homework3
 {
     const  MONSTER='HUNTER WORLD';
     private $name;
     protected $age;
     public function __construct($name,$age)
     {
         $this->name=$name;
         $this->age=$age;
     }
 }
 class Homework3_1 extends Homework3
 {
     const  MONSTER='MONSTER HUNTER KING WORLD ';
     private $weapon;
     public function __construct($name,$age,$weapon)
     {
         parent::__construct($name,$age);
         $this->weapon=$weapon;
     }
     public  function  __get($name)
     {
         if(isset($this->$name))
         {
             return $this->$name;
         }
         else return '无此属性';

     }

 }
$h3=new Homework3_1('猛汉王','33','太刀哥');
 echo $h3->weapon.'<br>';
echo Homework3::MONSTER.'<br>';
echo Homework3_1::MONSTER;
echo'<hr>';

运行实例 »

点击 "运行实例" 按钮查看在线实例

实例

<?php
class Mysqlconnect
{
    private  static  $pdo;
    private  static $info=['db'=>'mysql','host'=>'127.0.0.1','dbname'=>'php','username'=>'root','passwd'=>''];
    public  static function connect()
    {
        $dsn='mysql:host=127.0.0,1;dbname=php';
        self::$pdo=new PDO('mysql:host='.self::$info['host'].';dbname='.self::$info['dbname'],self::$info['username'],self::$info['passwd']);
        self::$pdo->query("set names utf8");
    }
    public  static function  select($fields='*',$table,$num)
    {
        $sql="select $fields from $table limit $num";
        $stmt=self::$pdo->prepare($sql);
        $stmt->execute();
       return  $stmt->fetchAll(PDO::FETCH_ASSOC);
    }
}
Mysqlconnect::connect();
 $res=Mysqlconnect::select('*','user',2);
 print_r($res);
运行实例 »

点击 "运行实例" 按钮查看在线实例

call_user_func($c1->hello) 在类外部声明函数时使用回调


类常量:所有对象共享,用类名加范围解析符(::)访问,且默认为公共属性public


构造方法中不仅可以初始化对象属性,还可以调用类方法__construct


子类的构造方法一定要把父类的构造方法重新声明一遍


属性重载方法__get(),__set()等应该设置在最终工作类中 被实例化的类就是工作类


引用父类构造方法  parent::__construct($name,$age)  


类常量可以在子类中重写,值不同


用类来访问用范围解析符:: 例如类常量,静态成员。用对象来访问用->


静态成员在类中不能用$this,要用关键字self::

QQ图片20180910215000.png

批改状态:未批改

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学