导航:首页 > 编程语言 > php定义枚举

php定义枚举

发布时间:2023-05-18 21:43:53

1. 枚举的属性和方法

枚举在Java中是一个类 ,代表着类的一一列举。要想知道枚举具体的使用首先要先知道它的具体的 属性 方法 才可以。虽然说我们在实际应用中很少去关注它的属性和方法,而是更多的关注它的 特性 ,利用它本身的特性去满足各种有意思的场景。

 由于上篇内容讲了我们自定义的枚举其实经过编译之后,实际继承的是lang包下的Enum类。虽然我们自定义的枚举类中可能存在不定义私有属性的情况,但继承的Enum类中自身就带有着两个属性,name属性、和ordinal属性。Enum类的源码

 name为我们枚举值的名称,而ordinal这个词的意思是“序数”或者说“有顺序的”,其实就是序数。我们知道枚举所代表的就是包含一个以上枚举值的集合,既然是集合它就是有顺序的,而大多数我们使用的时候往往忽略了它的序数这个属性,似乎忘了枚举是枚举这件事了。
 枚举中的序号是根据我们的枚举中显渗或示的顺序决定的,其实是是语法糖转换时初始化枚举值时决定了枚举值的序数,枚举中,第一个枚举值的序数总是小于后面枚举值的序数,且序数是从0开始的。

 接着上面讲的序数ordinal,针对序数我们先讲枚举的values()方法。

作含歼为一个枚举值的集合,所必须要有的操作肯定是遍历,这也是静态常量所没有的支持的。values()其实就是获取我们枚举值的数组:

 虽然我们自定义的枚举类是可以使用这个方法的,但继承的Enum类却没有这个方法,其实values()这个方法是很特殊的一个方法,之前说过枚举是一种语法糖,在它真正编译后,就会产生values()这个方法,所以我们自定义的枚举类是可以使用这个方法的,而且values()方法所返回的其实是一个浅拷贝;

 前面说到枚举有两个属性,name和ordinal,但实际上枚举只提供了根据name来获取具体枚举值的方法,却没有提供根据ordinal来获取具体枚举值的方法,但是values()方法也算是另外一种弥补了,根据values()得到的数据再根据ordinal序数获取具体的枚举值其实也是一样的效果。valueOf()方法就是那个根据name获取具体枚举值的方法,使用案例:

可选丛老伍姿势为两种,一参和两参,具体看案例。

2. php如何枚举二维数组的键名跟值

$arr = array('a'=>111,'b'=>222,'c'=>333);foreach($arr as $k=>$v){ echo "键名 {$k} 的值为 {$v}";}

3. PHP字符串枚举

代码示例如下图供参考:

<?php
$str仔祥岩='abcde';
$a=str_split($str);
perm($a,0,count($a)-1);

functionperm(&$ar,$k,$m){
if($k==$m){
echojoin('',$ar).'<br/>';
}else{
for($i=$k;$i<=$m;$i++){
宴谈swap($ar[$k],$ar[$i]);
perm($ar,$k+1,$m);
swap($ar[$k],$ar[$i]);
}
}
}
functionswap(&$a,&$b){
$c=$a;
$a=$b;
念御$b=$c;
}
?>

运行截图:

4. 枚举类型enum用法

枚举类型enum的用法如下文所示:

阅读全文

与php定义枚举相关的资料

热点内容
安卓和苹果通讯录怎么互传 浏览:203
怎么打开隐私与应用加密的菜单 浏览:416
我的世界服务器小游戏的地址大全 浏览:578
在网络安全中加密安全机制提供了数据的 浏览:249
南京前端程序员私活怎么收费 浏览:981
拓扑pdf 浏览:440
如何在工行app查我的订单 浏览:214
车压缩机改电动 浏览:83
如何寻找音乐app 浏览:831
一加加密的照片 浏览:200
阿里云虚拟主机php 浏览:639
不卡点的解压视频 浏览:391
hex文件下载单片机 浏览:873
实现编译器的自展技术 浏览:655
app开发者怎么突破 浏览:418
安卓手机amr格式是什么 浏览:556
找到最小的k个数并有序输出python 浏览:596
thinkphp模板php标签 浏览:165
如何识别毛笔字的app 浏览:670
安卓系统怎么把图片背景变透明 浏览:841