php类方法属性省略,第十课—类的属性和类的方法 2018年9月3日 20时00分
类的申明、实例化类、类常量、类方法的重写以及类的继承
实例
// 类的声明与实例化
// 父类
class Demo1
{
// 类常量使用关键字: const 定义
const SITE_NAME = '教师管理系统';
public $name;
protected $salary;
private $age;
// 初始化属性
public function __construct($name, $salary)
{
$this -> name = $name;
$this -> age = $salary;
}
}
// 子类
class Demo2 extends Demo1
{
private $sex;
// 重写类常量
const SITE_NAME = '学生管理系统';
// 重写父类方法
function __construct($name, $age, $sex = 'male')
{
//引用父类的构造方法来简化代码
parent::__construct($name, $age);
$this->sex = $sex;
}
// 重载属性
public function __get($name)
{
if(isset($this -> $name)){
return $this -> $name;
}
return '无此属性!';
}
}
$dome2 =new Demo2('peter', 6000);
// 访问类属性
echo $dome2 -> name.'
';
echo $dome2 -> salary.'
';
echo $dome2 -> age.'
';
// 访问类常亮
echo Demo1::SITE_NAME,'
';
echo Demo2::SITE_NAME;
运行实例 »
点击 "运行实例" 按钮查看在线实例
类中静态成员的声明与访问
实例
// 类中静态成员的申明与访问
class Demo {
public static $pdo;
protected static $db = [
'type' => 'mysql',
'host' => '127.0.0.1',
'dbname' => 'test',
'user' => 'root',
'pass' => ''
];
public static function connect()
{
$dsn = self::$db['type'].':host='.self::$db['host'].';dbname='.self::$db['dbname'];
self::$pdo = new PDO($dsn, self::$db['user'], self::$db['pass']);
}
public static function sect($table, $fields='*', $num=5)
{
// 预处理
$stmt = self::$pdo->prepare("SELECT {$fields} FROM {$table} LIMIT {$num}");
// 执行查询操作
$stmt -> execute();
// 返回查询结果
return $stmt -> fetchAll(PDO::FETCH_ASSOC);
}
}
// 连接数据库
Demo::connect();
// 查询表中的数据
$result = Demo::sect('user', 'name, age, salary', 6);
echo '
',var_export(($result));
运行实例 »
点击 "运行实例" 按钮查看在线实例
总结:
1类属性或类方法的访问控制:public(公有),protected(受保护)或 private(私有)
2.类中非静态成员使用$this->访问,静态成员使用self::访问
php类方法属性省略,第十课—类的属性和类的方法 2018年9月3日 20时00分相关推荐
- mysql构造器_类和对象,类的构造器,魔术方法__get()和__set(),mysql连接数据库的方式--2018年8月30日11时38分...
这一节课主要讲的是类和数据库的知识,主要是类和对象,类的构造器,魔术方法__get()和__set(),mysql连接数据库1. 什么是类 ?什么是对象?举例说明 答:类是对象的模板,对象是类的一个实 ...
- 原生 js、javaScript 处理十位数(带有小数点的浮点数时间戳)、十三位数、时间戳, 将时间戳转换成 年、月、日、时、分、秒、毫秒、正常的日期格式
function timestampToTime(timestamp) {var date = new Date(timestamp * 1000);//时间戳为10位需*1000,时间戳为13位的话 ...
- 【SQL开发实战技巧】系列(十六):数据仓库中时间类型操作(初级)日、月、年、时、分、秒之差及时间间隔计算
系列文章目录 [SQL开发实战技巧]系列(一):关于SQL不得不说的那些事 [SQL开发实战技巧]系列(二):简单单表查询 [SQL开发实战技巧]系列(三):SQL排序的那些事 [SQL开发实战技巧] ...
- php 类名 属性6,php基础知识(类中属性和方法练习)--2018年9月6日14:01:15
实例 echo " 类的申明与实例化 "; class test1 { public function hello(){ return "我是一个类"; } } ...
- php 父类命名空间,对命名空间的理解、类的继承与实现——2019年7月31号22时03分...
对命名空间的理解: 声明命名空间为 namespace : ::class //获取当前类的完整类名称(命名空间名称+类名称): 访问 new \命名空间名称\类名称 : 在one空间执行two空间的 ...
- 李沐在斯坦福开新课了!面向机器学习实战,课程全部免费,9月1日可报名
明敏 发自 凹非寺 量子位 报道 | 公众号 QbitAI 朋友们,又有新课可以白嫖了! 斯坦福新课<实践机器学习(CS 329P)>上线了,主讲人为李沐.黄清清.Alex Smola. ...
- 日期类的时间从为什么是从1970年1月1日(格林威治时间)
I suspect that Java was born and raised on a UNIX system. UNIX considers the epoch (when did time be ...
- 2018年5月14日第4课—文件隐藏权限、特殊权限、find命令等
为什么80%的码农都做不了架构师?>>> 1. 隐藏权限 设置隐藏权限:chattr [+|-选项] 文件|目录 选项: i:无法修改文件,如果目录设置了此权限,则仅能修改 ...
- 日期类的时间从为什么是从1970年1月1日
I suspect that Java was born and raised on a UNIX system. UNIX considers the epoch (when did time be ...
最新文章
- 经典算法面试题目-判断s2是否是s1的旋转字符串(1.8)
- linux docker 与 iptables 的关系
- Android 自定义WaveProgressView满足你所有水波纹加载需求
- 光源时间_天哪!你们居然都错了!D65光源,指的是上午还是下午的太阳光?
- iOS下音视频通信-基于WebRTC
- 全部关于测试–第1部分
- FM,FFM及其实现
- 制图折断线_学不好CAD怎么办?老师傅教你CAD制图规范,新手也能秒懂
- U-Boot源码之串口驱动
- js基础之六种继承方式
- 前端纯CSS导入otf字体包
- 数据结构——什么是数据结构?
- 【突变检验合集】含Pettitt突变检验等
- 12306网站服务器时间限制,12306网上订票时间限制
- Mac系统恢复以及Mac键盘快捷键 官方方法
- 电脑操作手机scrcpy软件
- 定时器node-schedule使用
- 苹果怎么设置下载软件不要密码?手机技巧分享
- Linux 网络分析工具 fping命令解析
- 汉诺塔 = 套娃 ?
热门文章
- kettlejava脚本的api_[翻译]KETTLE JAVA API :编程定制自己的Kettle转换(transformation)...
- canny算子_在Python中逐步检测Canny边缘 计算机视觉
- ecplise git修改提交信息_eclipse git提交忽略文件配置
- python实现卷积_【python实现卷积神经网络】池化层实现
- mysql 5.6.21 rpm_centos_mysql5.6.21_rpm安装
- 闪电邮修改服务器设置,网易闪电邮添加outlook邮箱的方法(图文教程)
- linux动态ip 搭建什么服务,怎么给Linux系统配置动态IP服务
- 大一计算机应用基础答案李小艳,13级幼师班期末考试计算机试题A卷
- java提交表单后页面不刷新_表单已经提交,但是点击后退,显示网页过期,刷新后怎样避免重复提交(急!!谢谢!)...
- Spring mvc 返回jsp