问题列表 - 第38507页

PHP Magic Methods __set和__get

这样做会被认为是好的做法......

我有A类,其定义如下:

 class A{
      private $_varOne;
      private $_varTwo;
      private $_varThree;
      public $varOne;


      public function __get($name){

   $fn_name = 'get' . $name;

         if (method_exists($this, $fn_name)){
             return $this->$fn_name();
   }else if(property_exists('DB', $name)){
             return $this->$name;
   }else{
    return null;
   }
      }

  public function __set($name, $value){

   $fn_name = 'set' . $name;

   if(method_exists($this, $fn_name)){
    $this->$fn_name($value);
   }else if(property_exists($this->__get("Classname"), $name)){
    $this->$name = $value;
   }else{
    return null;
   }

  }

      public function get_varOne(){
           return $this->_varOne . "+";
      }


 }

 $A = new A();
 $A->_varOne;     //For some reason I need _varOne to be …
Run Code Online (Sandbox Code Playgroud)

php

3
推荐指数
1
解决办法
1685
查看次数

如何替换git历史文件中的文本?

我一直使用基于接口的git客户端(smartGit),因此对git控制台没有多少经验.

但是,我现在需要在历史记录中替换所有.txt文件中的字符串(因此,不要删除整个文件而只是替换字符串).我找到了以下命令:

git filter-branch --tree-filter 'git ls-files -z "*.php" |xargs -0 perl -p -i -e "s#(PASSWORD1|PASSWORD2|PASSWORD3)#xXxXxXxXxXx#g"' -- --all
Run Code Online (Sandbox Code Playgroud)

我试过这个,不幸的是注意到密码确实发生了变化,所有二进制文件都被破坏了.图像等都会被破坏.

有没有更好的方法来做到这一点,不会破坏我的二进制文件?

谢谢.

编辑:

我搞砸了什么.导致二进制文件损坏的实际代码是:

$ git filter-branch --tree-filter "find . -type f -exec sed -i -e 's/originalpassword/newpassword/g' {} \;"
Run Code Online (Sandbox Code Playgroud)

顶部的代码实际上使用我的密码奇怪地删除了所有文件.

git version-control substitution git-filter-branch git-rewrite-history

35
推荐指数
5
解决办法
1万
查看次数

C#中的安全导航操作员?

可能重复:
"如果object为null,则返回null;如果object不为null,则返回object.member"

有些语言有一个安全的导航操作符,让您不必担心空引用异常.

Groovy语言示例:

String lname = person.Name.ToLowerCase(); //throws exception if Name is null
String lname = person.Name?.ToLowerCase();//lname will be null if Name was null
Run Code Online (Sandbox Code Playgroud)

如何在C#中完成与此类似的操作?到目前为止,我的解决方案是这样的扩展方法:

public static T o<T>(this T obj) where T : new()
{
            return obj != null ? obj : new T();
}
//used like: String lname = person.o().Name; //returns null if person was null
Run Code Online (Sandbox Code Playgroud)

但是,这仅适用于某些情况.

c#

7
推荐指数
2
解决办法
4647
查看次数

Gson:直接将String转换为JsonObject(无POJO)

似乎无法弄清楚这一点.我在GSON中尝试JSON树操作,但我有一个案例,我不知道或有一个POJO转换为字符串,在转换之前JsonObject.有没有办法直接从a StringJsonObject

我尝试了以下(Scala语法):

val gson = (new GsonBuilder).create

val a: JsonObject = gson.toJsonTree("""{ "a": "A", "b": true }""").getAsJsonObject
val b: JsonObject = gson.fromJson("""{ "a": "A", "b": true }""", classOf[JsonObject])
Run Code Online (Sandbox Code Playgroud)

a失败了,JSON被转义并解析为JsonString唯一,并 b返回一个空JsonObject.

有任何想法吗?

java json gson

288
推荐指数
6
解决办法
30万
查看次数

在Python中按值对嵌套字典进行排序,将余数除以另一个值

考虑这种字典格式.

{'KEY1':{'name':'google','date':20100701,'downloads':0},
 'KEY2':{'name':'chrome','date':20071010,'downloads':0},
 'KEY3':{'name':'python','date':20100710,'downloads':100}}
Run Code Online (Sandbox Code Playgroud)

我希望首先按下载排序字典,然后按日期排序没有下载的所有项目.显然字典无法排序,我只需要一个可以迭代的按键排序列表.

['KEY3','KEY1','KEY2']
Run Code Online (Sandbox Code Playgroud)

我已经可以通过使用值对列表进行排序sorted,但是如何按第二个值排序?

python sorting dictionary python-2.5

31
推荐指数
2
解决办法
3万
查看次数

如何将脚本添加到数据库视图中

我丢失了我创建的视图的脚本.我可以使用管理工作室从数据库中检索/重新创建脚本吗?

sql-server sql-server-2008

3
推荐指数
2
解决办法
3万
查看次数

12
推荐指数
2
解决办法
3万
查看次数

思考Sphinx应用程序范围的搜索:通过仅存在于某些模型中的属性进行过滤

我想搜索多个模型并按某些模型具有的某些属性进行过滤,有些则不需要.我希望带有属性的模型得到过滤,但没有它的模型只是忽略它.

目前只有具有该属性的模型才会返回结果.有没有办法让其他模型以某种方式忽略属性过滤器返回结果?

search thinking-sphinx

3
推荐指数
1
解决办法
822
查看次数

Rails - 可以将PDF转换为图像?

我有一个带PaperClip/S3的Rails 3应用程序......

是否可以允许用户上传PDF,将PDF转换为图像,然后上传?

谢谢!

pdf ruby-on-rails imagemagick ruby-on-rails-3

9
推荐指数
1
解决办法
9142
查看次数

如何获得屏幕刷新率?

这甚至可能吗?因为我注意到v-sync根本不能在我的笔记本电脑上工作,所以我"手动"构建FPS限制器,现在我想使用用户设置到他的屏幕的FPS限制.

编辑:我的意思是显示器hz率.

Edit3:继承了我工作的代码(我认为......那里有什么不对吗?):

DEVMODE lpDevMode;
memset(&lpDevMode, 0, sizeof(DEVMODE));
lpDevMode.dmSize = sizeof(DEVMODE);
lpDevMode.dmDriverExtra = 0;

if(EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &lpDevMode) == 0){
    framerate_limit = 60; // default value if cannot retrieve from user settings.
}
Run Code Online (Sandbox Code Playgroud)

根据需要,这是我的v-sync启用代码jay.lee要求:

PFNWGLSWAPINTERVALEXTPROC wglSwapIntervalEXT = NULL; // global

...

wglSwapIntervalEXT = (PFNWGLSWAPINTERVALEXTPROC) wglGetProcAddress("wglSwapIntervalEXT");

v_sync_enabled = 0;
if(wglSwapIntervalEXT != NULL){
    if(wglSwapIntervalEXT(1) != FALSE){
        v_sync_enabled = 1;
    }
}
Run Code Online (Sandbox Code Playgroud)

c++ windows opengl

4
推荐指数
1
解决办法
9564
查看次数