问题列表 - 第7460页

PHP忽略了类中的__set方法

我正在构建一个包含许多输入验证的类,我决定将它们放在__set方法中(我不确定这是否是正确的形式,因为我有有限的OOP经验).这似乎工作正常,当从类外部传递无效值时抛出正确的错误.但是,如果在类中修改了变量,则__set方法似乎完全被忽略.

任何见解都会非常感激

//RESULT:::::::::::::::::::::::::::::::
// PASS: Testing : hello
// PASS: Testing exception handling
// __SET: Setting b to 123
// PASS: Testing with valid value: 123
// FAIL: Testing exception handling World2



 <?php
class Test {
        public $a;
        private $b;

        function __set( $key, $val ) {

                switch( $key ) {
                        case 'b':
                                if( !is_numeric( $val ) ) throw new Exception("Variable $b must be numeric");
                                break;
                }

                echo ( "__SET: Setting {$key} to {$val}<br/>" );
                $this->$key = $val;
        }
        function __get( …
Run Code Online (Sandbox Code Playgroud)

php oop

6
推荐指数
2
解决办法
1928
查看次数

将Apache配置为使用Python就像CGI PHP一样

我认为将一种常见的方法添加到Apache Web服务器是将它配置为:

ScriptAlias /php5.3 /usr/local/php5.3/bin
Action application/php5.3 /php5.3/php-cgi
AddType application/php5.3 .php
Run Code Online (Sandbox Code Playgroud)

现在我尝试为Python编写类似的配置:

ScriptAlias /python /usr/bin
Action application/python /python/python
AddType application/python .py
Run Code Online (Sandbox Code Playgroud)

我有一个小的测试脚本,如下所示:

print "Content-Type: text/html\n\n"
print "Test"
Run Code Online (Sandbox Code Playgroud)

但是,由于apache错误日志显示以下内容,因此似乎有些错误:

Premature end of script headers: python
Run Code Online (Sandbox Code Playgroud)

所以我的第一个问题是我的python响应不对.但是有Content-Type和两个换行符.此外,调用的类似PHP脚本的输出也提供php-cgi了完全相同的输出.

此外,我还没有找到一个教程,展示如何让python以这种方式工作.也许这是不可能的,但后来我很好奇为什么会这样呢?或者我错过了什么?

python apache cgi

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

WCF:Svcutil生成无效的客户端代理,Apache AXIS Web服务,重载操作

我正在使用用Java编写并使用Apache Axis 1.3的第三方Web服务。该服务有许多重载操作。当WCF Svcutil生成代理时,它通过在操作名称后面附加一个数字来重命名重载的操作。例如:

getDataResponse getData(getDataRequest request);

getDataResponse1 getData1(getDataRequest1 request);
Run Code Online (Sandbox Code Playgroud)

这本身不是问题,但是当Svcutil生成请求/响应消息时,它忽略了更改MessageContracts的WrapperName属性。

    [MessageContractAttribute(
        WrapperName = "getData", 
        WrapperNamespace = "http://namespace.com", 
        IsWrapped = true)]
    public partial class getDataRequest1 {  ..  }
Run Code Online (Sandbox Code Playgroud)

当客户端应用程序尝试打开代理时,将引发以下异常:

InvalidOperationException:操作getData1中的RPC消息getDataRequest1具有无效的主体名称getData。它必须是getData1

如果我更改WrapperName =“ getData1”,则代理将打开,但是...

  1. 我无法调用该操作,因为该服务无法识别“ getData1”
  2. 该服务有近1100次操作,其中近一半是超载

有什么方法可以生成和/或修改代理,以便所有操作都可以与WCF一起使用?

标记

wcf wsdl svcutil.exe

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

c#type用于处理相对和绝对URI和本地文件路径

我有一个用例,我将处理本地文件路径(例如c:\foo\bar.txt)和URI(例如http://somehost.com/fiz/baz).我也将处理相对和绝对路径,所以我需要像Path.Combine朋友一样的功能.

我应该使用现有的C#类型吗?URI类型可能会奏效,但在路过一目了然,它似乎只是URI.

c# types uri path

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

什么时候适合使用泛型与继承?

使用泛型而不是继承有什么情况及其相关的好处,反之亦然,它们应该如何最好地结合起来?

谢谢你的回答.

我将尽力说明这个问题的动机:我有一个如下所示的课程:

class InformationReturn<T> where T : Info
{
    InformationReturn(Employee employee, List<T>) { ... }
}
Run Code Online (Sandbox Code Playgroud)

现在假设我有一个采用InformationReturn参数的存储库,它必须根据Info对象T的类型在数据库中编写不同的字段.为T类型创建不同的存储库是否更好; 一个使用反射来确定类型的存储库; 或者是否有更好的方法使用继承功能/使用泛型?

注意:其他客户端代码也必须根据T的类型进行不同的操作.

.net c# vb.net generics inheritance

8
推荐指数
5
解决办法
5819
查看次数

我应该在iPhone OS中排除或释放自动释放池吗?

医生说:

在垃圾收集环境中,如果需要,向池中发送排泄消息会触发垃圾回收; 然而,释放是一种无操作.在参考计数环境中,排水与释放具有相同的效果.因此,通常应使用排水而不是释放.

如果我做对了,他们说我应该总是使用-drain,无论周围有垃圾收集还是引用计数都没关系.在iPhone上没有GC,所以无论如何我发送-drain?

不幸的是,该文件只讨论了Cocoa,而不是Cocoa Touch或iPhone.所以我不确定那里是否适用.

iphone memory-management autorelease uikit

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

指向多维数组的指针数组

我有一些二维数组,如:

int shape1[3][5] =  {1,0,0,
             1,0,0,
             1,0,0,
             1,0,0,
             1,0,0};
int shape2[3][5] =  {0,0,0,
             0,0,0,
             0,1,1,
             1,1,0,
             0,1,0};
Run Code Online (Sandbox Code Playgroud)

等等.

我如何制作一系列指针?

我尝试了以下,但它们不起作用(警告:从不兼容的指针类型初始化):

int *shapes[]=  {&shape1,&shape2};

int *shapes[]=  {shape1,shape2};

int **shapes[]= {&shape1,shape2};
Run Code Online (Sandbox Code Playgroud)

有帮助吗?

c arrays pointers

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

SQLite相当于ISNULL(),NVL(),IFNULL()或COALESCE()

我想避免在我的代码中进行如下的许多检查:

myObj.someStringField = rdr.IsDBNull(someOrdinal) 
                            ? string.Empty 
                            : rdr.GetString(someOrdinal);
Run Code Online (Sandbox Code Playgroud)

我想我可以让我的查询通过执行以下操作来处理空值:

SELECT myField1, [isnull](myField1, '') 
FROM myTable1
WHERE myField1 = someCondition
Run Code Online (Sandbox Code Playgroud)

我虽然使用SQLite,但似乎没有认识到这个isnull功能.我也试过其他数据库中的一些公认的那些等效(NVL(),IFNULL()COALESCE()),但SQLite的似乎不认识任何人.

有没有人有任何建议或知道更好的方法来做到这一点.不幸的是,数据库没有所有字段的默认值.另外,LEFT JOIN在某些情况下我需要使用一些子句,其中返回的某些字段将为null,因为LEFT JOIN表中的匹配记录将不存在.

.net sqlite dbnull

85
推荐指数
5
解决办法
15万
查看次数

冻结Rails版本/宝石有什么意义?

那是什么意思?

在一个项目的说明中,它说"冻结Rails宝石".这与冻结Rails版本有什么不同?

什么是冷冻的?

ruby rubygems ruby-on-rails freeze

10
推荐指数
1
解决办法
2055
查看次数

即使文件模式明确是DOS,gVim也会显示回车符(^ M)

我在Windows上使用gVim.我的代码^M在行尾显示字符.我:set ff=dos以前没有用.^M现有行的字符仍然存在,但不会显示我输入的换行符.我已将模式切换为mac(显示^J字符)和unix(也显示^M字符)并返回dos.有没有人见过这个?

vim line-endings carriage-return

77
推荐指数
5
解决办法
6万
查看次数