问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

怎么给tp权限和领地权限

发布网友 发布时间:2022-04-25 08:45

我来回答

2个回答

懂视网 时间:2022-04-28 05:58

本文将实现一个简单的容器类

五、玩转自己的容器类

此时我们把Person 的文件修改一下

添加一个构造函数,把参数使用构造函数进行赋值,在buy方法中就不需要在进行传递参数,只需要使用this->obj即可。

在这里插入图片描述此时如果还是直接运行dependency路由就会报下边一个错,那是因为在Person中构造函数有个参数,的但是我们没有传。

在这里插入图片描述此时就需要在修改一处,就是在实例化Person时把Car的实例当参数给传进去就没有任何问题了。

在这里插入图片描述
在这里插入图片描述

但是你会发现上边这都是什么代码,本来简简单单的几行代码被复杂成这个样子,这个时候就已经弊大于利了,不管设计模式在好,盲目的使用对项目来说也是一种负担。

所以这个时候反射就来了,反射在上文中也进行简单的介绍过,一定要看哈!文章都是一环套着一环的。

反射之战优化代码

最终优化完成的代码就是这样的,接下来对这段代码进行简单的解析。

  • 在之前代码的基础上只修改了kaka/container/Container.php这个类里边的get方法
  • 判断这个名person是否在容器中
  • 使用反射接口,然后获取传进去person类的构造方法
  • 如果person没有构造方法就直接返回person这个实例即可
  • 如存person在构造函数,则获取person构造函数的方法
  • 由于person类里边的构造函数的参数不会仅限于一个
  • 所以需要循环来获取每个参数的对象
  • 最后使用反射的 newInstanceArgs接口创建对应的实例
  • <?php
    /**
    * Created by PhpStorm.
    * User: 咔咔
    * Date: 2020/9/21
    * Time: 19:04
    */

    namespace container;


    class Container
    {
    /**
    * 存放容器
    * @var array
    */
    public $instances = [];

    /**
    * 容器的对象实例
    * @var array
    */
    protected static $instance;

    /**
    * 定义一个私有的构造函数防止外部类实例化
    * Container constructor.
    */
    private function __construct() {

    }

    /**
    * 获取当前容器的实例(单例模式)
    * @return array|Container
    */
    public static function getInstance ()
    {
    if(is_null(self::$instance)){
    self::$instance = new self();
    }

    return self::$instance;
    }

    public function set ($key,$value)
    {
    return $this->instances[$key] = $value;
    }

    /**
    * User : 咔咔
    * Notes: 获取容器里边的实例 使用反射
    * Time :2020/9/21 22:04
    * @param $key
    * @return mixed
    */
    public function get ($key)
    {
    if(!empty($this->instances[$key])){
    $key = $this->instances[$key];
    }

    $reflect = new ReflectionClass($key);
    // 获取类的构造函数
    $c = $reflect->getConstructor();
    if(!$c){
    return new $key;
    }

    // 获取构造函数的参数
    $params = $c->getParameters();
    foreach ($params as $param) {
    /**
    ReflectionClass Object
    (
    [name] => containerdependencyCar
    )
    */
    $class = $param->getClass();
    if(!$class){

    }else{
    // containerdependencyCar
    $args[] = $this->get($class->name);
    }
    }
    // 从给出的参数创建一个新的类实例
    return $reflect->newInstanceArgs($args);
    }
    }

    在这里插入图片描述文件application/index/controller/Container.php这里就是修改之后的变动

    在这里插入图片描述问题一:kaka/container/dependency/Person.php里边的参数Car是什么意思

    这个问题其实很简单,你可以看到这个Car就是同目录的Car.php文件。你就可以直接理解为同命名空间下的文件。

    在这里插入图片描述问题二:文件application/index/controller/Container.php为什么可以直接调用buy方法

    首先看一下obj的值,返回的这个对象里边就已经把Car的类实例化好了,所以无需在实例化,可直接调用buy方法,因为参数会直接传递过去

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述以上就是咔咔实现的一个简单的容器,如有不明白或者问题可以直接评论区回复即可。

    接下来就是针对框架里边的容器进行剖析,一步一步的追溯到根源。

    坚持学习、坚持写博、坚持分享是咔咔从业以来一直所秉持的信念。希望在偌大互联网中咔咔的文章能带给你一丝丝帮助。我是咔咔,下期见。

    热心网友 时间:2022-04-28 03:06

    手拿木斧,在你房子的角上最低点左键点一下地和对角的最高点右键点一下。然后输入 /res select size 来查询一下你所圈的领地是否正确和满意,这个命令也会显示出你当前圈地所需要的金钱。输入 ( /res create 领地名字) 来购买领地,领地名字自己随意起。
      注意!给权限的时候要站在当前领地里面,如果不在请在朋友名字后面空格加上领地名字。
      例:/res pset 朋友名称 领地名称 use true
      /res pset 朋友名称 领地名称 use true 使用领地中的物品(包括:门,按钮 等等)
      /res pset 朋友名称 领地名称 build true 在领地里面建设/拆除
      /res pset 朋友名称 领地名称 container true 使用领地中的容器包括:箱子,炉子,发射器 等等
      长用命令这3种足够如果要取消对方的权限,把最后的true改成false。
      build:设置玩家是否可以在领地里面建设/拆除【如果为false 玩家将不可以建设/拆除】
      use:设置玩家是否可以使用领地中的物品(包括:门,按钮 等等)【如果为false 玩家将不可以使用东西】
      container:设置玩家是否可以使用领地中的容器包括:箱子,炉子,发射器 等等,如果false玩家将不可以打开
      tp:设置玩家是否可以传送到领地里面【如果为false 玩家将无法传送进领地】[暂不可设置]
      admin:设置玩家是否可以修改领地里面的flags【默认为false】[暂不可设置]
      flow:设置液体是否可以流动【默认为false】
      pvp:设置是否开启PVP
      tnt:设置TNT能否照成任何破坏
      creeper:设置creeper能否爆炸
      ignite:如果为false 将不能点火
      firespread:如果为false 火焰将不会散播
      subzone:设置玩家是否可以建设subzone
      bucket:设置玩家是否可以使用桶子
      place:单独设置玩家是否可以摆放物品(设置这个将盖过build flag)
      destroy:单独设置玩家是否可以破坏物品(设置这个将盖过build flag)
      piston:设置是否可以使用活塞
    声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
    小鹏交付怎么评分 2024年5月趋乾黄道吉日 2024年5月哪天适合趋乾 2024年6月词讼黄道吉日 2024年6月哪天适合词讼 2024年8月成服黄道吉日 2024年8月哪天适合成服 2024年8月26日黄道吉日 百度识图在线识别这个人是 百度怎样识别明星是谁? 海绵城市都建什么 包钢股票前景如何 600010包钢股份这支股票我现在被套百分之六了,后市该怎么操作,适合做长 ... 怎么给队友权限,求指令 烟草证办理需要什么条件 关于mc领地指令问题 游戏开发设计基础教程的目录 东营市办理烟草证需要什么资料 DIABLO是什么意思? “HEAO”是什么意思? ONE CENT是什么意思? SPETT.LE是什么意思 怎么办理商住房房产证 烟草证年审都需要什么资料 javascript中怎么验证输入的是否是double 商办的投资逻辑? 年审烟草证需要什么证件? 请问太原什么地方有游戏设计公司? C/C++中如何判断一个double类型的变量为零 重庆办理商转公贷款办理材料 烟草证需要什么条件 Java的Double的判断和显示问题 这是技术培训吗?单位可以收取培训违约金吗? 办理烟草证需要什么材料 我的世界圈完地给别人全部权限然后怎么取消他的权限? 烟草证审核需要什么手续 我的世界 附魔台的使用权怎么设置? 办烟草证需要哪些条件? 我的世界服务器领地指令怎么设置? 为什么我设置领地传送点出现无效领地? 怎么设置除了我自己别人不能 年审烟草证需要什么证件 MC创建领地后一些权限默认是true还是false的 办理烟草证需要哪些证件 最基本的电脑知识 怎么办烟草证,需要具备什么条件 minecraft领地flag set什么意思 计算机的基本知识都有哪些? 我的世界领地指令? 必须知道的一些电脑知识 Java中boolean数组随机数问题,以下有代码,两个问题(已标注),求大神解释,谢谢! 怎样使用在线流程图模板? 电脑小常识大全 谁有 我的世界1.7.10指令 大全 给我发一下 好么高手 电脑的基本知识概念