问题列表 - 第49259页

初始化类变量的更好方法是什么?

这是初始化类变量的两种方法.

第一种方法

class Test {
    private $var1;
    private $var2;

    public function Test($var1,$var1) {
        $this->var1 = $var1;
        $this->var2 = $var2;
    }
}
$objTest = new Test("value1","value2");
Run Code Online (Sandbox Code Playgroud)

第二种方法

class Test {
    private $var1;
    private $var2;

    public function _set($var, $value) {
        $this->$$var = $value
    }
}
$objTest = new Test();
$objTest->_set('var1','value1');
$objTest->_set('var2','value2');
Run Code Online (Sandbox Code Playgroud)

现在,这两种方法都是有效的,但我想知道哪种方法更好?只坚持一种方法的利弊是什么?

php class variable-initialization

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

将哈希映射转换为数组

我有一个像这样的hashmap:

HashMap<String, String[]> map = new HashMap<String, String[]>();
Run Code Online (Sandbox Code Playgroud)

欲将此转换为一个数组,说温度[],含有作为第一值从HashMap中的密钥和作为第二字符串[] - 从地图数组,也可作为阵列.这可能吗?怎么样?

java arrays hashmap

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

为getchar()添加超时

我需要在程序中为getchar()添加一个超时函数.

我该怎么办,当我的程序到达指令getchar()时,它只会等待一段时间让用户进行击键,如果用户没有在给定的时间限制内进行击键,程序将"跳过"getchar()?

操作系统不支持conio.h库,因此kbhit不是一个选项.

c time timeout input getchar

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

在Cocoa Touch中获取滑动方向

我试图抓住一个手势,但它不起作用.这是我的代码:

UISwipeGestureRecognizer *recognizer;
    recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeFrom:)];
    [recognizer setDirection:(UISwipeGestureRecognizerDirectionRight | UISwipeGestureRecognizerDirectionLeft)];
    [[self view] addGestureRecognizer:recognizer];
    [recognizer release]; 
Run Code Online (Sandbox Code Playgroud)

-(void)handleSwipeFrom:(UISwipeGestureRecognizer *)recognizer {
    NSLog(@"get gesture");
    if (recognizer.direction == UISwipeGestureRecognizerDirectionRight) {
        NSLog(@"get gesture right");
    }
    if (recognizer.direction == UISwipeGestureRecognizerDirectionLeft) {
        NSLog(@"get gesture Left");
    }
}
Run Code Online (Sandbox Code Playgroud)

它总是得到一个手势,但不认识方向.我也试过if(recognizer.direction){NSLog(@"get gesture");},它也有效,所以我不明白我犯了哪个错误.

谢谢你的帮助.

xcode cocoa-touch objective-c gesture uigesturerecognizer

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

所有者对框架上的PArent和Taction快捷方式

我有一个带面板的表格.

我在运行时创建框架,并通过将框架的父属性设置为面板在面板上显示它们.

在创建面板时,我没有设置所有者属性,因为我自己管理框架的生命周期.

直到现在我没有问题.接下来,我在框架上放置一个TActionList,并在动作上添加一些快捷方式.

我发现直到我将框架的所有者属性设置为面板后才执行我的操作.

有人可以解释一下吗?我认为所有者属性只是关于组件负责释放子组件,而不负责转发关键事件.

delphi owner

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

如何学习线程安全的c#编程?

我想知道什么是线程安全的?如何开始学习c#中的线程安全programmimg?线程在Web开发中的作用是什么?

c# multithreading

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

SQL查询'not in'子句执行需要太长时间

以下查询花费太多时间,很可能是因为"不在"使用.

你能建议改进吗?

SELECT vcode, 
       vname, 
       1014 AS fid 
FROM   testcodes co 
WHERE  co.vcode NOT IN (SELECT dict.vcode 
                        FROM   datadictionary dict 
                        WHERE  dict.fid = 1014) 
Run Code Online (Sandbox Code Playgroud)

关于结构的一件事是.vCode,vName是varchar,testCodes和DataDictionary具有相同的结构.

我搜索了这个问题,发现左连接可以解决这个问题?(为什么它做得更好,如何做到)?

有人可以指导它是否可以改进???

sql

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

解析IMAP时,base64编码的字符串通过fgets调用被截断

我正在使用Zend_Mail解析电子邮件,奇怪的是一些内容在没有明显原因的情况下被截断,并且使电子邮件部分出错.

例如

Content-Disposition: attachment; filename="file.sdv"

DQogICAgICBTT05FO0xBTkRJTkdTREE7U0FMR1NEQVRPIDtOQVNKIDtSRURTS0FQICAgICAgICAg
ICAgIDsgRklTS0VTTEFHO1BSRVNFUlYgICA7ICBUSUxTVEFORDsgU1TYUlJFTFNFOyAgS1ZBTElU
RVQ7T01TVFlQRSAgO01JTlNURVBSSVM7ICAgICBWRVJESTsgICBLVkFOVFVNOyAgUlVORFZFS1Qg
IA0KLS0tLS0tLS0tLTstLS0tLS0tLS0tOy0tLS0tLS0tLS07LS0tLS07LS0tLS0tLS0tLS0tLS0t
LS0tLS07LS0tLS0tLS0tLTstLS0tLS0tLS0tOy0tLS0tLS0tLS07LS0tLS0tLS0tLTstLS0tLS0t
LS0tOy0tLS0tLS0tLTstLS0tLS0tLS0tOy0tLS0tLS0tLS07LS0tLS0tLS0tLTstLS0tLS0tLS0t
ICANCiAgICAgICAgIDA7MjAxMC4wOS4wODsyMDEwLjA5LjA4O05vcnNrO0dhcm4gICAgICAgICAg
ICAgICAgOyAgICAgIDEwMjE7RkVSU0sgICAgIDsgICAgICAgMjEwOyAgIDQwMjA5OTk7ICAgICAg
ICAyMDtFZ2Vub3ZlcnQ7ICAgICAgICAgIDsgICAzMDcyLDE2OyAgICAgICAyMTE7ICAgICAyNTMs
MiAgDQogICAgICAgICAwOzIwMTAuMDkuMDg7MjAxMC4wOS4wODtOb3JzaztHYXJuICAgICAgICAg
Run Code Online (Sandbox Code Playgroud)

被截断为

Content-Disposition: attachment; filename="file.sdv"

DQogICAgICBTT05FO0xBTkRJTkdTREE7U0FMR1NEQVRPIDtOQVNKIDtSRURTS0FQICAgICAgICAg
ICAgIDsgRklTS0VTTEFHO1BSRVNFUlYgICA7ICBUSUxTVEFORDsgU1TYUlJFTFNFOyAgS1ZBTElU
RVQ7T01TVFlQRSAgO01JTlNURVBSSVM7ICAgICBWRVJESTsgICBLVkFOVFVNOyAgUlVORFZFS1Qg
IA0KLS0tLS0tLS0tLTstLS0tLS0tLS0tOy0tLS0tLS0tLS07LS0tLS07LS0tLS0tLS0tLS0tLS0t
LS0tLS07LS0tLS0tLS0tLTstLS0tLS0tLS0tOy0tLS0tLS0tLS07LS0tLS0tLS0tLTstLS0tLS0t
LS
Run Code Online (Sandbox Code Playgroud)

每行的var_dump显示了这一点.

string(78) "DQogICAgICBTT05FO0xBTkRJTkdTREE7U0FMR1NEQVRPIDtOQVNKIDtSRURTS0FQICAgICAgICAg
"
string(78) "ICAgIDsgRklTS0VTTEFHO1BSRVNFUlYgICA7ICBUSUxTVEFORDsgU1TYUlJFTFNFOyAgS1ZBTElU
"
string(78) "RVQ7T01TVFlQRSAgO01JTlNURVBSSVM7ICAgICBWRVJESTsgICBLVkFOVFVNOyAgUlVORFZFS1Qg
"
string(78) "IA0KLS0tLS0tLS0tLTstLS0tLS0tLS0tOy0tLS0tLS0tLS07LS0tLS07LS0tLS0tLS0tLS0tLS0t
"
string(78) "LS0tLS07LS0tLS0tLS0tLTstLS0tLS0tLS0tOy0tLS0tLS0tLS07LS0tLS0tLS0tLTstLS0tLS0t
"
string(5) "LS)
"
string(17) "TAG5 OK Success
"    
Run Code Online (Sandbox Code Playgroud)

或者在其他电子邮箱中

DQogICAgICBTT05FO0xBTkRJTkdTREE7U0FMR1NEQVRPIDtOQVNKIDtSRURTS0FQICAgICAgICAg
ICAgIDsgRklTS0VTTEFHO1BSRVNFUlYgICA7ICBUSUxTVEFORDsgU1TYUlJFTFNFOyAgS1ZBTElU
RVQ7T01TVFlQRSAgO01JTlNURVBSSVM7ICAgICBWRVJESTsgICBLVkFOVFVNOyAgUlVORFZFS1Qg
IA0KLS0tLS0tLS0tLTstLS0tLS0tLS0tOy0tLS0tLS0tLS07LS0tLS07LS0tLS0tLS0tLS0tLS0t
LS0tLS07LS0tLS0tLS0tLTstLS0tLS0tLS0tOy0tLS0tLS0tLS07LS0tLS0tLS0tLTstLS0tLS0t
LS0tOy0tLS0tLS0tLTstLS0tLS0tLS0tO
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚为什么要停在那里.传输应该只停留在行尾.这是从IMAP服务器获取字符串的行.

$line = @fgets($this->_socket);
Run Code Online (Sandbox Code Playgroud)

编码文本包含类似的字符串,但同样会在不同电子邮件的各个部分中截断.

----------;----------;----------;-----;--------------------;----------;----------;--
Run Code Online (Sandbox Code Playgroud)

我试图为fgets()添加一个大小,但没有结果.我还启用/禁用了"auto_detect_line_endings"php_ini设置,再次没有结果.

我还用ZF 打开了一个错误报告,尽管错误似乎不在库中.

你看到这个编码的字符串有什么奇怪的吗?

UPDATE

新的研究表明,电子邮件在584个字符后被截断.还是不知道为什么.向谷歌发送了一个问题.看到这里.

电子邮件标头错误:

Delivered-To: email@removed.com
Received: by 10.216.3.208 with SMTP …
Run Code Online (Sandbox Code Playgroud)

php base64 imap stream fgets

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

Zend_Log_Writer_Firebug()无效

我安装了Firefox 3.6.15,Firebug和FirePHP插件,启用了控制台.我正在使用Zend 1.11.以下代码未在firebug控制台中显示任何内容.

<?php
    require_once('Zend/Log.php');
    require_once('Zend/Log/Writer/Firebug.php');

    $writer = new Zend_Log_Writer_Firebug();
    $logger = new Zend_Log($writer);

    $logger->info('info message');
    $logger->warn('warning message');
    $logger->err('error message');
?>
Run Code Online (Sandbox Code Playgroud)

我尝试使用FirePHP核心库,这有效 -

<?php
     require_once('FirePHPCore/FirePHP.class.php');
     ob_start();

     $firephp = FirePHP::getInstance(true); 
     $var = array('i'=>10, 'j'=>20);

     $firephp->log($var, 'Iterators');
?>
Run Code Online (Sandbox Code Playgroud)

想让Zend的东西起作用.任何的想法?

php zend-framework firephp

2
推荐指数
1
解决办法
2127
查看次数

如何在C++中打印字符串

我尝试了这个,但它没有用.

#include <string>
string someString("This is a string.");
printf("%s\n", someString);
Run Code Online (Sandbox Code Playgroud)

c++ string printf

64
推荐指数
4
解决办法
35万
查看次数