PHP 枚举类型的管理与设计知识点总结_php实例

来源:脚本之家  责任编辑:小易  

班班管理应当包括:制定班级目标、建设班集体、组织班级活动、优化班级管理、营造班级文化、整合班级教育力量和进行学生素质发展评价等。(一)建设师生共同发展的精神家园1、什么是班集体?班集体是由整个班级所组成,以完成学校教育任务为共同目标,有一定的组织机构、规章制度,并形成共同的舆论和班风的精神共同体。2、为什么要建设班集体?“教育了集体,团结了集体,加强了集体,以后集体自身就能成为很大的教育力量。“集体是个人的教师。3、怎样建设班集体?(1)确立班级共同目标,激发上进心;(2)强化集体观念,维护集体荣誉;(3)建立班机组织机构,明确服务意识;(4)制定班级规范,实施自主管理;(5)尊重学生的差异,促进个性发展;(6)形成优良的班风,培养关怀精神。(二)开展丰富多彩的班级活动如同身体的发展需要充足的养料一样,心灵的成长也需要丰富的营养,而各种实践活动正是孩子心灵成长的非常重要的营养素。1、班级活动的意义人类的潜能需要一种特殊的方式来加以开发,这种特殊的方式就是符合人的发展特点、形式多样、生动活泼的实践活动。2、组织班级活动的要求(1)尊重学生,充分发挥其主体性学生良好的素质是主体在积极活动状态下不断生成的。(2)贴近生活,解决学生的实际问题根据学生的实际问题组织班级活动,具有很强的针对性,它符合学生发展的要求,从而取得活动的最佳效果。(3)围绕主题,开展系列活动只有围绕某一主题开展系列活动,不断强化与这一主题相关的教育影响,才有可能按照预期目标形成某一品质。(4)重视实践,让学生有动手机会孩子们在属于自己的活动中,迸发出了最大的参与热情、最强的创新能力和最坚韧的意志力。(5)开拓创新,培养学生的创新精神学生的创新精神和创造能力在很大程度上要靠创新教育活动来培养。只有创新的活动才能培养出创新的人才。(三)实施以人为本的班级管理1、班级管理的功能一是促进学生社会化发展二是促进学生个性化发展2、优化班级管理的原则(1)人性化原则所谓人性化原则,就是在管理过程中要尊重学生,从学生的需要出发,以学生乐于接受的方式来管理,处处为学生着想,关心学生的健康成长。“教师应该成为自己的第一个学生,你教别人什么,你先问问自己愿不愿意这样做;你向学生说什么,先想想自己愿听不愿听。(2)民主化原则民主化原则要求班主任尊重并平等对待班上每一个学生,认真听取学生的意见,充分调动全体同学的积极性和创造性、组织他们参与班级管理。一般同学能做的事,班干部不做,班干部能做的事,班主任不做,只有学生都不能做的事,班主任才去做。(3)情感性原则所谓情感性管理就是在管理过程中渗透情感性,使学生动心动情,以提高他们的情感素养。批评有不同的颜色,关键是我们如何调配好批评的色彩,把握好批评的尺度和分寸,让学生以一种愉悦的心态接受教育。(4)自主性原则“教育这个概念,在广义上就是对集体教育和对个人教育的统一;而在个人的教育中,自我教育则是起主导作用的方法之一。人们常说,管理的最高境界就是不管,真正学会了自己自主管理,便进入了这个最高境界www.zgxue.com防采集请勿采集本网。

今天来分享下如何管理 PHP 的枚举类型。

由于设计行为一般都解释为有明确目标的,因此在近代将与设计意涵相反的创作,称为乱数、随机等等。在西方,大型的设计系统,往往以Architecture建筑来称呼。这边指的建筑并非具体的建筑学、而是一种抽象的

一种常见的方式是,使用常量来代表枚举类型

每一种形式都具有自己鲜明的特点,适宜不同类型的商品销售。(1)商品分销型单店。商品分销型单店是商品分销渠道中的一个环节,受许人可能是产品的制造商,也可能是零售商。因此,此类单店又可分为批发型和

const YES = '是';const NO = '否';

相同点:都是动态类型的解释型高级脚本语言。不同点既各自优缺点: PHP名称的含义是“超文本预处理器”。仅则一个名称就说明了PHP的着重点,也是长处 1、文本处理。text,意味擅长所有的文本处理

可以在这个基础上更进一步,将其封装成类,以便于管理

精细化管理是一个全面化的管理模式。全面化是指精细化管理的思想和作风要贯彻到整个企业的所有管理活动中。它包含以下几个部分: 1、精细化的操作:是指企业活动中的每一个行为都有一定的规范和要求。每一

class BoolEnum { const YES = '是'; const NO = '否';}

生产运作管理是对生产运作系统的设计,运行与维护过程的管理,它包括对生产运作活动进行计划,组织和控制。传统生产管理主要是以工业企业,特别是制造业为研究对象,其注目点主要是一个生产系统

现在,我们希望能通过方法来动态调用对应的枚举类型

BoolEnum::YES(); // 是BoolEnum::NO(); // 否

也可以批量获取枚举类型

BoolEnum::toArray(); // ['Yes' => '是', 'No' => '否']

下面来实现上面列举的功能。

定义基本的枚举基类,让所有的枚举类都继承该抽象基类。

abstract class Enum{ // 获取所有枚举类型 public static function toArray(){ // 通过反射获取常量 $reflection = new \ReflectionClass(static::class); $contants = $reflection->getConstants(); // 返回对应的常量 return $contants; } // 动态调用属性 public static function __callStatic($name, $arguments) { $arr = static::toArray(); if(isset($arr[$name])){ return $arr[$name]; } throw new \BadMethodCallException("找不到对应的枚举值 {$name}"); }}class BoolEnum extends Enum{ const YES = '是'; const NO = '否';}

利用反射,可以获取到所有的枚举类型。同时,利用魔术方法则可以实现对属性的动态调用。这里要注意的是,反射会消耗较多的资源,因此,对 toArray 方法进行重构,增加一个缓存变量来缓存获取到的枚举类型,避免重复使用反射。

abstract class Enum{ protected static $cache = []; public static function toArray(){ $class = static::class; // 第一次获取,就通过反射来获取 if(! isset(static::$cache[$class])){ $reflection = new \ReflectionClass(static::class); static::$cache[$class] = $reflection->getConstants(); } return static::$cache[$class]; }}

现在考虑更多的使用场景,比如用实例来代表特定枚举类型

$yes = new BoolEnum("是");echo $yes; // "是"

实现如下

abstract Enum { protected $value; public function __construct($value) { if ($value instanceof static) { $value = $value->getValue(); } if(! $this->isValid($value)){ throw new \UnexpectedValueException("$value 不属于该枚举值" . static::class); } $this->value = $value; } // 获取实例对应的键 public function getKey(){ return array_search($this->value, static::toArray(), true); } // 获取实例对应的值 public function getValue() { return $this->value; } // 允许字符串形式输出 public function __toString() { return $this->value; } // 验证值是否合法 public function isValid($value) { $arr = static::toArray(); return in_array($value, $arr, true); } // 验证键是否合法 public function isValidKey($key) { $arr = static::toArray(); return array_key_exists($key, $arr); }}

这样做可避免用户使用非法的枚举类型的值

$user->banned = '非法值'; // 可能不会报错$yes = new BoolEnum("非法值"); // 将会抛出异常$user->banned = $yes;

或者作为参数类型限定

function setUserStatus(BoolEnum $boolEnum){ $user->banned = $boolEnum;}

PHP 作为一门弱类型语言,参数限定的不足会导致很多不可预期的错误发生,通过使用枚举类,我们进一步加强了参数限定的功能,同时,管理枚举类型也更加的方便统一。

以上就是本次介绍的全部相关知识点,感谢大家的学习和对真格学网的支持。

1.设计一个用于人事管理的People(人员)类。考虑到通用性,这里只抽象出所有类型人员都具有的属性:number(编号)、sex(性别)、birthday(出生日期)、id(身份证号)等等。其中“出生日期定义为一个“日期”类内嵌子对象。用成员函数实现对人员信息的录入和显示。要求包括:构造函数和析构函数、复制构造函数、内嵌成员函数*/includeincludeusing namespace std;class Date/日期类{private:int year;int month;int day;public:Date(){}/默认构造Date(int y,int m,int d)/带参构造{year=y;month=m;day=d;}void set()/设置数据函数{cin>>year>>month>>day;}void display()/显示函数{cout年"月"日;}};class Person/人员类{private:int num;char sex;Date birthday;char ID[18];public:Person(){}/默认构造Person(int n,int y,int m,int d,char id[18],char s='m'):birthday(y,m,d){num=n;sex=s;strcpy(ID,id);}/有默认值的带参构造Person(Person&p)/拷贝构造{num=p.num;sex=p.sex;birthday=p.birthday;strcpy(ID,p.ID);}void input()/输入函数{cout录入数据:";cout编号:;cin>>num;cout性别(m/f):;cin>>sex;cout生日:;birthday.set();cout身份证号:;cin>>ID;ID[18]='\\0';cout;}void output()/输出函数{cout编号:";cout性别:";cout生日:;birthday.display();cout;cout身份证号:";}Person()/析构函数{cout号人员已经录入";}};int main(){Person p1;p1.input();p1.output();return 0;}include"stdafx.hinclude"iostreaminclude"stringusing namespace std;class Data{/日期类public:Data(){}Data(int y,int m,int d){m_year=y;m_month=m;m_day=d;}int get_year(){return m_year;}int get_month(){return m_month;}int get_day(){return m_day;}void set_year(int y){m_year=y;}void set_month(int m){m_month=m;}void set_day(int d){m_day=d;}private:int m_year;int m_month;int m_day;};class Person{/人员类public:Person(){}Person(int n,int sex,Data birth,string id){/构造函数m_number=n;m_sex=sex;m_birthday=birth;m_id=id;}Person(Person*temp){/拷贝构造函数m_number=temp->get_number();m_sex=temp->get_sex();m_birthday=temp->get_birthday();m_id=temp->get_id();}Person(){}inline int get_number(){/内联成员函数return m_number;}int get_sex(){return m_sex;}Data get_birthday(){return m_birthday;}string get_id(){return m_id;}Person addperson(){/人员信息的录入int number,sex,year,month,day;string id;cout;cin>>number;cout(1 for male,0 for female):;cin>>sex;cout,\\n\\"1984 7 21\\"\\n;cin>>year>>month>>day;cout;cin>>id;Data birthday(year,month,day);m_number=number;m_sex=sex;m_birthday=birthday;m_id=id;return this;}void show(){/人员信息的显示string sex=m_sex>0?male":"female;cout;cout;cout;cout()()();cout;}private:int m_number;int m_sex;Data m_birthday;日期类 内嵌子对象string m_id;};int_tmain(int argc,_TCHAR*argv[]){Person p;p.addperson();p.show();return 0;}内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • php中enum(枚举)用法实例详解
  • php使用正则过滤js脚本代码实例
  • php ajaxform提交图片上传并显示图片源码
  • zend framework动作助手url用法详解
  • php显示页码分页类的封装
  • php内核探索之解释器的执行过程
  • php微信红包生成代码分享
  • laravel 添加多语言提示信息的方法
  • smarty中post用法实例
  • php中模拟处理http put请求的例子
  • yii2针对指定url的生成及图片等的引入方法小结
  • 设计一个用于人事管理的People(人员)类。考虑到通用性,这里只抽象出所有类型人
  • 什么是班级管理?班级管理的特点和任务是什么?
  • 施工管理中的“三控三管一协调”和施工组织设计是什么关系
  • 公共管理机构组织形象有哪些类型
  • 设计主要有那些分类?
  • 单店的类型与运营管理模式是怎样的?
  • python与php的异同,和各自的优缺点?
  • 什么是精细化管理?怎样精细化管理
  • 生产与运作管理的定义是什么
  • 施工项目管理组织机构设计的原则是什么
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全php基础php技巧php实例php文摘php模板首页php编程php实例php中enum(枚举)用法实例详解php使用正则过滤js脚本代码实例php ajaxform提交图片上传并显示图片源码zend framework动作助手url用法详解php显示页码分页类的封装php内核探索之解释器的执行过程php微信红包生成代码分享laravel 添加多语言提示信息的方法smarty中post用法实例php中模拟处理http put请求的例子yii2针对指定url的生成及图片等的引入方法小结php获取数组长度的方法(有实例)微信公众平台实现获取用户openid教你如何使用php session使用php生成二维码的两种方法(带php发送get、post请求的6种方法简php中把stdclass object转array的微信公众平台网页授权获取用户基laravel框架数据库curd操作、连贯php字符串的连接的简单实例php删除数组中空值的方法介绍laravel 错误提示本地化的实现laravel框架自定义分页样式操作示例如何在centos8自定义目录安装php7.3php 判断ip为有效ip地址的方法php在网页中动态生成pdf文件详细教程centos7.0下安装php5.6.30服务的教程详解yii2分页之实现跳转到具体某页的实例代码kindeditor编辑器添加图片上传水印功能(thinkphp分组下自定义标签库实例laravel 之url参数,获取路由参数的例子
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved