php 如何实现函数参数类型约束,约束传入参数 数组里面元素的类型. - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cdffh
V2EX    PHP

php 如何实现函数参数类型约束,约束传入参数 数组里面元素的类型.

  •  
  •   cdffh 2014-09-26 10:11:02 +08:00 5307 次点击
    这是一个创建于 4058 天前的主题,其中的信息可能已经有所发展或是发生改变。
    test(array $a) 这样只能约束 $a是一个数组
    请问有没有方法约束 数组$a 里面的元素必须是相应类型的
    10 条回复    2014-09-26 15:09:32 +08:00
    holystrike
        1
    holystrike  
       2014-09-26 10:24:19 +08:00   2
    原生数组不行,但是可以用对象来做
    继承 ArrayAccess 接口,定义 __set 魔术方法判定一下就可以了
    jeriwu
        2
    jeriwu  
       2014-09-26 10:47:38 +08:00   1
    php弱类型,你懂的
    场景单一的话,是否可以在函数内部对参数进行判断然后抛出异常。
    jianghu52
        3
    jianghu52  
       2014-09-26 10:56:38 +08:00   1
    前几天写python的时候,也问过同样的问题,然后被人教训了一通。
    你自己建立的笼子,你就有义务保证放进来的只是鸡鸭这样的家禽,而不会是黄鼠狼这样的野兽。
    这也是python的思想,只有在用户输入的时候,才需要判断是什么类型,其他任何时候,都不应该判断,如果这个时候出错了,那么证明你写的程序逻辑上就存在问题。
    简单来说,就是除了用户输入的时候,其他任何时候的错误都是程序员的错误。
    chuangbo
        4
    chuangbo  
       2014-09-26 12:29:36 +08:00   1
    也许你需要的是 Facebook 做的 Hack
    http://hacklang.org/
    evefree2
        5
    evefree2  
       2014-09-26 13:35:05 +08:00   1
    对象+1
    kimmykuang
        6
    kimmykuang  
       2014-09-26 14:10:21 +08:00   1
    自己代码自己负责+完善的注释
    nika0908
        7
    nika0908  
       2014-09-26 14:32:05 +08:00
    cdffh你好,期待你加入36氪

    简历发送至
    [email protected]

    薪资:12K---20K
    我们这里有:
    在创业大街InnoWay中1300平的硅谷范儿的场地办公;
    和坚强女汉子及单身漂亮妹子一起共事;
    氪星管饭(早、午餐);
    薪水富有竞争力;
    下午茶、水果、定期按摩

    技能要求:
    1、php技术扎实,有至少2年以上实际开发经验。
    2、使用过至少3种mvc框架比如yii、kohana、symfony、thinkphp等,能够熟练使用mvc框架进行开发
    3、对数据结构设计有深刻理解,有独立设计过相关业务数据结构的优先考虑
    4、熟练掌握mysql数据库设计使用,要求数据memcache、redis等nosql缓存数据库
    5、熟悉常用linux服务指令,有独立安装配置优化nginx、php、redis、solr等服务,能使用shell编写简单脚本的优先考虑
    6、熟悉并且使用过Javascript优先考虑

    岗位描述:
    1、负责数据运营的功能开发工作
    2、负责氪加产品(创业项目融资交易平台)的后端功能开发
    chuangbo
        8
    chuangbo  
       2014-09-26 14:54:13 +08:00
    楼上这位。。。不是情商高的人适合做 HR 么。。
    cdffh
        9
    cdffh  
    OP
       2014-09-26 15:07:47 +08:00
    @jianghu52 这个思想很受用.
    cdffh
        10
    cdffh  
    OP
       2014-09-26 15:09:32 +08:00
    @chuangbo 这个有意思 我试试
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5710 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 35ms UTC 03:18 PVG 11:18 LAX 19:18 JFK 22:18
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86