草庐IT

change_protection

全部标签

php - php父类(super class)如何访问其子类的 protected 方法?

我今天才注意到这种行为-很奇怪,我很确定在java中你只能访问继承链上游的protected方法,因为另一种方式违反了封装。语言中有这种行为的原因吗? 最佳答案 我发现当在父类中定义的一个方法只需要根据扩展类类型更改其功能的一小部分时,它很有用。您可以从父类中调用抽象方法,并且它的功能会根据需要随着子类中该方法的定义而改变。我还要补充一点,兄弟类也可以访问彼此的protected属性和方法,只要它们在父类中声明(可以是抽象的也可以不是)。 关于php-php父类(superclass)如

php - Symfony2 : Database schema and entities not updating with changed metadata

我在更新Symfony2中的架构时遇到问题。我已经使用doctrine将数据库导入到Symfony2,并在YML中创建了所有ORM文件。我已经根据这个元数据创建了所有实体并且效果很好,但是如果我想使用orm.yml文件更改数据库架构,它不会更新我的数据库,甚至不会在我重新生成实体时更新它们。导入创建了orm.yml文件/src/{name}/{my}bundle/Resources/config/doctrine/metadata/orm/{table}.orm.yml它的创建没有错误。当我这样做时:phpapp/consoledoctrine:schema:update--dump-

php, invokeArgs : parameters changed, 怎么返回呢?

首先,我要测试一个功能:privatefunctiontestMe(array&$output){$output['a']=3;//$$$$$outputgetschanges}我做了一个小方法让它公开,然后调用:publicstaticfunctionmakePublicAndCall($objectInstance,$methodname){$ref=newReflectionMethod(get_class($objectInstance),$methodname);$ref->setAccessible(true);$params=array();for($i=2+1;$iin

PHP - 关联数组 : Changing keys for key value pair where value is a class object

我有一个形式的关联数组:$input=array("one"=>,"two"=>$input的键保证是唯一的。我还有一个名为moveToHead($key)的方法,它将$input[$key]元素移动到此关联数组的第0个位置。我有几个问题:是否可以确定关联数组的索引?如何将对应的$key=>$value对的数组条目移动到索引0并保留$key原样?实现上述两点的最佳方法是什么?我想为第二点做array_flip(子解决方案),但后来发现array_flip只能在数组元素为int和string时完成。有什么指点吗? 最佳答案 使用名为a

php - 为什么变量应该有 public 或 private 或 protect 但函数不应该在类中

我知道为什么我不能在没有任何东西的情况下在类中定义变量吗?(公共(public)、私有(private)、保护)为什么这有语法错误?classmyclass{$var='anythig';}但这没关系:classmyclass{functiontest(){//codehere}}最后,为什么我可以定义一个没有任何功能的var?classmyclass{functiontest(){$var='anything';//ithasnotanythig(public,privare,protect)}} 最佳答案 当你使用任何编程语言时

php - Laravel/无法访问 protected 属性 Illuminate\Database\Eloquent\Collection::$items

我仍在学习Laravel,我正在使用Eloquent来运行我的查询。在我的应用程序中,一个用户可以属于一个圈子。圆圈包含存储库,存储库又包含项目。我正在尝试获取一个圈内属于各种存储库的所有项目。用户模型:publicfunctioncircle(){return$this->belongsTo('App\Models\Circle');}圆形模型:publicfunctionusers(){return$this->hasMany('App\Models\User');}publicfunctionrepositories(){return$this->hasMany('App\Mod

php - CakePHP 3 : Changing structure of result set

我是CakePHP新手,遇到以下问题:我有表“图片”、“关键字”和“关键字类别”。每个图像都可以有多个关键字(多对多),每个关键字都有一个类别(多对一)。使用检索图像列表$images=$this->Images->find()->contain(['Keywords','Keywords.KeywordCategories']);返回这样的结果结构:[{"id":1,"keywords":[{"keyword":"Dog","keyword_category":{"title":"Animal"}},{"keyword":"Cat","keyword_category":{"titl

php - xdebug 远程 : can I execute php code or change variables?

是否可以使用xdebug的远程调试在断点期间执行任意PHP代码或至少更改变量的值?我正在使用SublimeText2插件SublimeXDebug. 最佳答案 Xdebug支持通过DBGp协议(protocol)修改变量。它还可以执行(eval)代码。一些IDE,如Komodo和PhpStorm允许您通过IDE更改值。其他人(例如SublimeXdebug)很可能不允许这样做。对DBGp命令property_set的引用位于:http://www.xdebug.org/docs-dbgp.php#property-get-prope

php - 找出一个方法是 protected 还是公共(public)的

使用这段代码,我试图测试我是否可以调用某些函数if(method_exists($this,$method))$this->$method();但是现在我希望能够在$methodprotected情况下限制执行,我需要做什么? 最佳答案 您需要使用Reflection.classFoo{publicfunctionbar(){}protectedfunctionbaz(){}privatefunctionqux(){}}$f=newFoo();$f_reflect=newReflectionObject($f);foreach($f

php - Apache + PHP : how to change the value of $_SERVER ['SERVER_NAME' ] in apache?

例如,我有mysite.com和beta.mysite.com。两者都使用virtualHost指令指向同一个索引文件。我将在apacheconf中做什么,以便当我访问$_SERVER['SERVER_NAME']时,该值仍然是mysite.com?这应该是灵活的,只有beta会被删除。 最佳答案 也许您可以在VirtualHost指令中使用ServerAlias,并且只使用一个VirtualHost指令:ServerNamemysite.comServerAliasbeta.mysite.com...