小编JW.*_*JW.的帖子

将对象副本传递给方法 - 谁进行复制?

我有一个对象,我正在传递一个方法调用.假设我使用的语言只允许您通过引用传递对象,如Java或PHP.如果方法更改了对象,则会影响调用者.我不希望这种情况发生.所以我似乎需要制作一个对象的副本.

我的问题是:克隆对象的责任是什么?调用者在调用方法之前?或者被调用者,在它改变对象之前?

编辑:只是为了澄清,我希望这是这个方法的合同的一部分 - 它永远不会修改原始对象.因此,似乎应该由制作副本的方法决定.但是,调用者无法保护不能正确执行此操作的方法.我想这是可以接受的 - 唯一的另一种选择似乎就是把它融入到语言中.

oop

5
推荐指数
2
解决办法
330
查看次数

我应该使用多字节重载(mbstring.func_overload)吗?

我正在使我的PHP站点支持Unicode.我想知道是否有人有mbstring.func_overload设置经验,strlen用其多字节等价物(mb_strlen)替换正常的字符串函数(例如).PHP手册页上没有任何评论.

我应该注意哪些潜在的问题?调用多字节版本的任何情况都是个坏主意?

我想一个例子是处理加密的函数,因为它们可能期望处理字节串而不是字符串.

此外,手册页还包含一个注释:"不建议在每个目录上下文中使用函数重载选项,因为在生产环境中尚未确认它足够稳定并且可能导致未定义的行为."

这是否意味着它在每个目录的上下文中不稳定,或者它通常不稳定?措辞不清楚.

php unicode

5
推荐指数
2
解决办法
3205
查看次数

Android:"更新版本0比安装版本旧"

我正在以发布模式构建Android应用.我第一次在设备上安装它,它工作正常.但是如果我从同一个源重建它,用相同的密钥签名,并重新安装,它就会失败.我在日志中收到以下错误:

W/InstallAppProgress(30456): Replacing package:com.mycompany.myapp
W/ActivityManager(26370): No content provider found for permission revoke: file:///storage/emulated/0/Download/MyApp-17.apk
W/PackageManager(26370): Can't install update of com.mycompany.myapp update version 0 is older than installed version 3
Run Code Online (Sandbox Code Playgroud)

应用程序的版本代码设置为3,这两次都是我构建的.在哪里知道更新是"版本0"?

更新:我的清单文件中有这个:android:versionCode="@integer/app_version_code".我已经<integer name="app_version_code">3</integer>定义了res/values/strings.xml.

我很确定这曾经有用,但现在似乎没有.如果我用硬编码的"3"替换@integer引用,它就可以工作.不应该支持 @integer 吗?

android

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

为什么 Xcode 会创建名为“XC Wildcard”的非通配符应用程序 ID?

我从 Apple 的开发人员网站上删除了我所有的应用程序 ID 和配置文件。然后我创建了一个新的 Xcode 7.3.1 项目,并单击“找不到匹配的配置文件”消息旁边的“修复问题”。

它创建的应用程序 ID 称为“XC 通配符”,但它不是通配符 ID;它被设置为 Xcode 项目的包标识符。它创建的开发配置文件被分配给该应用程序 ID。

如果我更改包标识符并单击“修复问题”,它会创建一个名为“XC 通配符”的第二个应用程序 ID,其中包含新的包标识符和另一个开发配置文件。

这有效,但似乎是错误的。它不应该创建一个实际的通配符应用程序 ID,除非我打开推送通知等特定功能?

xcode ios

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

cordova-ios 是否支持 Xcode 11 和 iOS 13 SDK?

刚刚收到苹果的通知:

从 2020 年 4 月开始,iPad 的所有新应用和应用更新都需要使用 iOS 13 SDK 构建,并支持 12.9 英寸 iPad Pro(第 3 代)的全屏设计。

cordova-ios 是否支持使用 Xcode 11 和 iOS 13 SDK 进行构建?

处理这款 iPad Pro 有什么问题吗?

cordova cordova-ios

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

使用通用代码的多个应用程序 - 如何处理此问题?

我的公司有两到三个使用大量常用代码的Web应用程序 - 自定义MVC框架,实用程序类,JavaScript库等.

我们不希望在每个应用程序中复制所有这些代码,因为我们最终会使用它的几个略有不同的版本.但我们不希望应用程序需要与此代码完全相同的副本,因为我们不希望更新到一个应用程序可能会破坏另一个应用程序.

有没有人有任何处理这个问题的技巧?我不认为我正在寻找技术答案 - 更多只是一般方法.

我们可以将代码放入库中,并允许应用程序保留在旧版本的库中,直到它们准备升级为止.或者我们可以将它分成多个库,因此我们不必一次升级所有内容.但是,管理库版本之间的相互依赖性会变得困难吗?

code-reuse

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

我在最近的一次采访中被问到这个问题

我被要求远离HashMap或任何类型的Hashing.

问题是这样的 -

假设您有最多20位小数的PRODUCT ID以及产品描述.如果不使用地图或任何类型的散列函数,那么存储/检索这些产品ID及其描述的最佳/最有效方法是什么?

为什么在这种情况下使用Maps是一个坏主意?

您将解决方案出售给亚马逊会有什么变化?

algorithm data-structures

4
推荐指数
2
解决办法
2131
查看次数

使 PHP 性能分析可预测

我正在使用 xdebug 和 PHP 进行一些性能分析。但是当我不止一次运行同一个脚本时,我经常得到非常不同的时间。所以很难知道对结果有多大信心。

很明显,一台机器上发生的很多事情都会影响 PHP 的性能。但是我能做些什么来减少变量的数量,从而使多个测试更加一致?

我在 Mac OS X 上的 Apache 下运行 PHP。

php profiling xdebug

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

为什么debug_backtrace()使用这么多内存?

在尝试跟踪PHP中的一些内存问题时,我注意到debug_backtrace(),我在日志代码中调用的内容似乎使用了大量内存.

在大多数情况下,以下代码打印出类似的内容0.02 MB.但在一个案例中,它打印171.85 MB!

$before = memory_get_usage();
$backtrace = debug_backtrace(false);
$after = memory_get_usage();
echo round(($after - $before)/1024/1024, 2)." MB";
Run Code Online (Sandbox Code Playgroud)

我的问题是,这是否意味着debug_backtrace实际上正在使用那么多内存?或者可能会发生其他事情,例如垃圾收集,从而弄乱了回报价值memory_get_usage

php memory

4
推荐指数
2
解决办法
5104
查看次数

为什么动态生成的内容不会改变包含div的高度?

我正在编写一个显示数据库信息的页脚div.页脚具有与页面其余部分不同的背景颜色,并且其高度取决于数据库向其投入的内容量.当我使用php生成内容并调用页脚div周围的边框时,内容会出现,比如400px高,但div边框在div的顶部显示为1px高的矩形.

如何获得自动调整内容的高度?

<div id="footer">
<?php 


    $an_array=array();
    $tasks=mysql_query("select stuff from the db");

    while($row=mysql_fetch_assoc($tasks)){
        extract($taskrow);
        $an_array[]=$task;
        }

    $an_array=array_chunk($an_array,4);

    foreach($an_array as $dtkey=>$dtval){
        echo "<dl>";
        foreach($dtval as $dtvkey=>$dtvval){
            echo "<dt>".$dtvval."</dt>";

        }
        echo "</dl>";
        }
?>
</div>
Run Code Online (Sandbox Code Playgroud)

这就是我得到的.红色边框下方的区域应填充颜色. 边界图片http://www.kevtrout.com/tortus/div.png

根据大众需求,这里是css:

#footer{
        border-top: 10px solid #d8d8d8;
        background:#5b5b5b;
        /*overflow:auto;*///Added this after seeing your answers, it worked

         }              
dl.tr{
        width: 255px;
        height:160px;
        background: #5b5b5b;
        margin:0px;
        float:left;
        padding: 10px;
        }

    dt.tr{
        font-weight: normal;
        font-size: 14px;
        color: #d8d8d8;
        line-height: 28px;
        }
Run Code Online (Sandbox Code Playgroud)

编辑:我在mac上使用firefox

html css

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