问题列表 - 第33937页

在PHP中有人可以解释克隆与指针引用吗?

首先,我理解编程和对象,但以下对我来说在PHP中没有多大意义.

在PHP中,我们使用&运算符来检索对变量的引用.我理解一个引用是一种用不同变量引用相同"事物"的方法.如果我说的话

$b = 1;
$a =& $b;
$a = 3;
echo $b;
Run Code Online (Sandbox Code Playgroud)

将输出3,因为对$ a的更改与对$ b的更改相同.反过来:

$b = 1;
$a = $b;
$a = 3;
echo $b;
Run Code Online (Sandbox Code Playgroud)

应该输出1.

如果是这种情况,为什么需要克隆关键字?在我看来,如果我设置

$obj_a = $obj_b 然后对$ obj_a所做的更改不应该影响$ obj_b,相反,$ obj_a =&$ obj_b应该指向同一个对象,因此对$ obj_a所做的更改会影响$ obj_b.

然而,在PHP中,似乎$ obj_a DO上的某些操作会影响$ obj_b,即使在没有引用运算符的情况下进行了分配($obj_a = $obj_b).这对我今天在使用DateTime对象时造成了令人沮丧的问题,我最终基本上通过这样做来修复:

$obj_a = clone $obj_b
Run Code Online (Sandbox Code Playgroud)

但是我编写的大多数PHP代码似乎都不需要像这种情况那样的显式克隆,没有它就可以正常工作.这里发生了什么?为什么PHP必须如此笨重?

php clone reference

18
推荐指数
2
解决办法
3792
查看次数

无法打开与SQL Server的连接

我在连接数据库服务器时遇到问题.数据库服务器不是本地的,我通过其IP地址连接.

它在我的开发机器上运行良好.将网站发布到我的服务器后,它无法连接到我的数据库服务器.

建立与SQL Server的连接时发生与网络相关或特定于实例的错误.服务器未找到或无法访问.验证实例名称是否正确,以及SQL Server是否配置为允许远程连接.(提供者:命名管道提供程序,错误:40 - 无法打开与SQL Server的连接)

为什么我的发布服务器无法连接到数据库服务器,而它可以通过开发机器正常工作?

sql sql-server asp.net

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

MKMapView setRegion"捕捉"到预定义的缩放级别?

任何人都可以确认setRegion"捕捉"到预定义的缩放级别,以及此行为是否与设计(虽然未记录)或已知错误一样?具体来说,似乎setRegion捕捉到与用户双击地图时使用的缩放级别相对应的相同缩放级别.

我正在尝试恢复以前保存的区域,但如果通过缩放缩放而不是双击缩放设置保存的区域,则此行为无法实现.

如果我在地图的当前区域调用regionThatFits,那么在mapkit方面的事情就会被打破的一个重要线索就是如此.它应该返回相同的区域(因为它显然适合地图的框架),但它返回的区域对应于下一个更高的预定义缩放级别.

setVisibleMapRect的行为类似.

任何进一步的见解或信息将不胜感激.

我找到了这些相关的帖子,但都没有包含解决方案或确切的确认,这实际上是一个mapkit错误:

MKMapView setRegion:奇怪的行为?

MKMapView显示错误保存的区域

编辑:

这是一个演示该问题的示例.所有值对我的地图视图的宽高比都有效:

MKCoordinateRegion initialRegion;
initialRegion.center.latitude = 47.700200f;
initialRegion.center.longitude = -122.367109f;
initialRegion.span.latitudeDelta = 0.065189f;
initialRegion.span.longitudeDelta = 0.067318f;
[map setRegion:initialRegion animated:NO];
NSLog(@"DEBUG initialRegion:  %f  %f  %f  %f", initialRegion.center.latitude, initialRegion.center.longitude, initialRegion.span.latitudeDelta, initialRegion.span.longitudeDelta);
NSLog(@"DEBUG map.region:  %f  %f  %f  %f", map.region.center.latitude, map.region.center.longitude, map.region.span.latitudeDelta, map.region.span.longitudeDelta);
Run Code Online (Sandbox Code Playgroud)

OUTPUT:

DEBUG initialRegion:  47.700199  -122.367111  0.065189  0.067318
DEBUG map.region:  47.700289  -122.367096  0.106287  0.109863
Run Code Online (Sandbox Code Playgroud)

请注意纬度/经度增量值的差异.地图的值几乎是我要求的两倍.较大的值对应于用户双击地图时使用的缩放级别之一.

iphone mapkit mkmapview

19
推荐指数
2
解决办法
7886
查看次数

HBRUSH为RGB值

HBRUSH能从画笔ID中获取RGB值吗?例如:我正在寻找GRAY_BRUSHRGB值.

winapi gdi

7
推荐指数
1
解决办法
2086
查看次数

具有聚合模型类的MVVM - 如何在ViewModels中包装?

我目前正在尝试使用MVVM模式创建一个小应用程序.但是我真的不知道如何在我的ViewModel中正确包装聚合的Model类.从我对MVVM的了解不多,您不应该将ViewModel中的Models公开为属性,否则您可以直接从View中绑定到Model.所以我似乎必须将嵌套模型包装在另一个ViewModel中,但是这会在稍后同步Model和ViewModel时带来一些问题.

那么你如何有效地做到这一点?

我举一个简短的例子.假设我有以下模型类:

public class Bar
{
    public string Name { get; set; }
}

public class Foo
{
    public Bar NestedBar { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

现在我相应地创建了两个ViewModel类,包装了Models,但遇到了FooViewModel的问题:

public class BarViewModel
{
    private Bar _bar;
    public string Name 
    { 
        get { return _bar.Name; }
        set { _bar.Name = value; }
    }
}

public class FooViewModel
{
    private Foo _foo;
    public BarViewModel Bar
    {
        get { return ???; }
        set { ??? = value; }
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我如何处理FooViewModel的Bar属性?为了"get"工作,我需要返回一个BarViewModel实例.我是否在FooViewModel中创建了该类型的新字段,并将_foo.NestedBar对象包装在那里?对该字段属性的更改应向下传播到基础Bar实例,对吧?

如果我需要将另一个BarViewModel实例分配给该属性,如下所示:

foo.Bar = …
Run Code Online (Sandbox Code Playgroud)

wpf mvvm

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

c#检查目录是否被隐藏?

可能重复:
如何测试目录是否隐藏在C#中?

DirectoryInfo dir = new DirectoryInfo(@"c:\test");
if ((dir.Attributes & FileAttributes.Hidden) == (FileAttributes.Hidden)) 
{ 
     //do stuff
}
Run Code Online (Sandbox Code Playgroud)

使用此if语句,我想测试目录是否被隐藏.虽然目录确实是隐藏的,但是我的程序没有进入do stuff,因为只设置了属性的目录标志.有什么建议?

c# directory file-attributes

7
推荐指数
1
解决办法
7330
查看次数

在.NET中表示不可变列表的最佳方法是什么?

我最近开始使用F#进行"实际工作",并重新发现了不可变数据结构的美妙之处,例如F#中的歧视联盟和记录.我还发现它们很容易从C#中使用,特别是因为它们不需要对F#运行时有任何直接依赖.但是,在表示这些结构中的列表时,我还没有找到理想的解决方案.

我的第一次尝试是将列表键入为seq <'a>(在C#世界中为IEnumerable),它提供了一个很好的通用集合接口,而不像ICollection <>及其朋友那样导出任何改变集合的方法.但是,由于我无法控制受歧视的联合或记录的构造函数,因此这些类型的实例的创建者可以提供可能在使用时更改或抛出的IEnumerable <>实现(例如LINQ表达式) .IEnumerable <>因此不会给编译器提供任何帮助,证明该值是不可变的,因此线程安全.

我目前的策略是使用F#list类型,它确保了一个不可变的集合,但是在F#运行时添加了一个依赖项,当从非F#项目中使用它时看起来有些偏差.但它确实允许IEnumerable <>没有的F#模式匹配.它也没有在列表的实际表示中给出任何选择,并且在某些情况下(例如原始值的大列表),F#列表表示并不真正适合.

我真正希望看到的是.NET中的不可变数组类型,表示与普通数组一样紧凑,但编译器保证不会发生变异.我会像C++一样欢迎const,尽管它可能不太可能发生.与此同时,我还有其他选择吗?

.net f# list immutability

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

在Android应用中实现更改黑/亮主题功能

我希望在我的应用中有一个"更改主题"功能.如果我在onCreate()中调用setTheme(),则有一个问题.

在我启动应用程序后的那一刻,一个普通的白色背景出现了一秒钟(因为我在清单中设置了浅色主题).之后,将显示我的活动的完整布局 - 根据用户的主题偏好,它可以是白色或黑色背景.

有什么方法可以改变发射后是否出现白色或黑色背景?

android

16
推荐指数
1
解决办法
5352
查看次数

编译Ubuntu-8.04时生成中间.i文件(预处理文件)

我正在用gcc 3.4构建ubuntu-8.04,我需要生成.i文件,它们是gcc预处理器的输出.我已经尝试添加--save-temps标志但这只生成顶级目录的.i文件,即源,并且似乎不会递归地传递到子目录.我还尝试了-E标志,它应该输出预处理文件并停止编译,但这也没有生成文件.

我特别希望为net/core中的源生成.i文件.

任何帮助表示赞赏.谢谢!!

compilation linux-kernel intermediate-code

6
推荐指数
1
解决办法
3236
查看次数

用于分组新闻文章的增量聚类算法?

我正在做一些关于如何将文章聚集成"新闻报道"的新闻.

看一下之前关于这个问题的问题,我经常看到它建议简单地从一篇文章中提取一个单词的向量,如果它们在文章的某些部分(例如标题)中,则更多地加权一些单词,然后使用类似k-means算法的东西来聚类文章.

但这导致了几个问题:

  • 有了k-means,你怎么知道k应该是多少?在动态新闻环境中,您可能会有不同数量的故事,并且您不会事先知道一组文章所代表的故事数量.

  • 使用分层聚类算法,您如何确定将哪些聚类用作故事?您将在树的底部有一些集群,这些集群只是单个文章,您显然不想使用这些集群,并且树的根目录中包含所有文章的集群,这也是您不想要的......但是你怎么知道它们之间的哪些集群应该被用来代表故事呢?

  • 最后,使用k-means或hierarchal算法,我读过的大多数文献似乎都假设您有一个预设的文档集合,您想要聚类,并将它们全部聚集在一起.但是,你经常会有新文章进入的情况如何.怎么了?你是否必须从头开始集中所有文章,现在还有一个?这就是为什么我想知道是否有方法可以让你在不重新聚类的情况下"添加"文章.我无法想象这是非常有效的.

cluster-analysis

14
推荐指数
1
解决办法
2701
查看次数