博主信息
博文 24
粉丝 0
评论 0
访问量 20640
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
类的实例化与属性重载-2018年9月3日
鱼越龙门的博客
原创
595人浏览过

今天学习了类的实例化与属性重载的知识

代码:

实例

<?php
//类的声明和实例化

//用class声明一个类
class Demo1{

}
//使用类要先实例化
$demo1=new Demo1();

//给对像添加一些属性和方法
$demo1->name='tom';
$demo1->sex='男';
$demo1->hello=function (){
    return '我是一个自定义的类方法';
};
//使用对象访问符:-> 来访问对象中的成员(属性和方法)
echo $demo1->name,':',$demo1->sex,'<br>';
//错误的调用方式,
//echo $demo1->hello();
echo call_user_func($demo1->hello);

运行实例 »

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

实例

<?php
//类的声明和实例化

//用class声明一个类
class Demo1{

}
//使用类要先实例化
$demo1=new Demo1();

//给对像添加一些属性和方法
$demo1->name='tom';
$demo1->sex='男';
$demo1->hello=function (){
    return '我是一个自定义的类方法';
};
//使用对象访问符:-> 来访问对象中的成员(属性和方法)
echo $demo1->name,':',$demo1->sex,'<br>';
//错误的调用方式,
//echo $demo1->hello();
echo call_user_func($demo1->hello);

运行实例 »

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

实例

<?php
class Demo3{
    //父类属性
    public $name;
    protected $age;
    private  $salary;
    const APP_NAME='学生管理系统';
    public function __construct($name,$age)
    {
        $this->name=$name;
        $this->age=$age;
    }
    public function __get($name)
    {
        if(isset($this->$name)){
            return $this->$name;
        }
        return '非法属性';
    }
}
class Demo3_1 extends Demo3{
    //子类自有属性
    private $sex;
    //子类将父类同名方法进行重写,根据传入参数不同,实现不同的功能,这就是多态性
    public function __construct($name, $age,$sex='mela')
    {
        parent::__construct($name, $age);
        $this->sex=$sex;
    }
    public function __get($name)
    {
       if(isset($this->$name)){
           return $this->$name;
       }
       return '非法属性';
    }
}
//当前类Demo3_1中即使没有任何成员,一样可以访问父类成员
$demo3_1=new Demo3_1('tom',80);
//访问父类中的属性
echo $demo3_1->name,'<br>';
echo $demo3_1->age,'<br>';
echo $demo3_1->salary,'<br>';

运行实例 »

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

实例

<?php
class Demo4{
    public static $pdo=null;
    protected static $db=[
        'type'=>'mysql',
        'host'=>'127.0.0.1',
        'dbname'=>'php',
        'user'=>'root',
        'pass'=>'root',
    ];
    public static function connect(){
        $dns=self::$db['type'].':host='.self::$db['host'].';dbname='.self::$db['dbname'];
        self::$pdo=new PDO($dns,self::$db['user'],self::$db['pass']);
    }
    public static function select($table,$fields='*', $num=5)
    {
        $stmt = self::$pdo->prepare("SELECT {$fields} FROM {$table} LIMIT {$num}");
        $stmt->execute();
        return $stmt->fetchAll(PDO::FETCH_ASSOC);

    }
}
Demo4::connect();
$result = Demo4::select('staff','name,age,salary',8);
echo '<pre>',var_export($result);

运行实例 »

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

批改状态:合格

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

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

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