我正在分析其他人的PHP代码,我注意到输入HTML有许多隐藏的输入字段,其名称以'[]'结尾,例如:
<input type="hidden" name="ORDER_VALUE[]" value="34" />
<input type="hidden" name="ORDER_VALUE[]" value="17" />
Run Code Online (Sandbox Code Playgroud)
处理此输入的PHP页面获取每个值,如下所示:
foreach ($_REQUEST["ORDER_VALUE"] as $order_value) {
/...
}
Run Code Online (Sandbox Code Playgroud)
什么是'[]'用于?指定会有多个具有相同名称的输入字段?
我想使用XSL从树中删除一些元素.
假设我有以下XML树:
<?xml version="1.0" ?>
<mydoc>
<file>
<colors>
<blue />
<red />
<green />
</colors>
<secret>
<username />
<password />
</secret>
</file>
</mydoc>
Run Code Online (Sandbox Code Playgroud)
我想从中删除用户名和密码节点.我将如何处理XSL?
我发现在 Rails 应用程序编程中非常方便的一个技巧是class_eval可以用来动态创建方法。我现在开始进行测试,我想知道是否可以使用类似的想法来生成测试。
例如,我需要before_filter用户登录才能执行控制器中的所有操作。我想编写测试来确保将其before_filter应用于所有操作。我不想单独编写每个测试,而是想自动生成所有这些测试。
这种类型的测试是否可取,或者我应该坚持单独编写测试?如果是的话,人们会如何去做呢?
编辑:这可能看起来像:
actions = {:index => :get,:show => :get,:edit => :get,:update => :put}
actions.each_pair do |action,type|
class_eval(%Q{def test_user_required_for_#{action}
set_active_user users(:one)
#{type} :#{action}
assert flash[:error]
assert_redirected_to :action => :index
end
})
end
Run Code Online (Sandbox Code Playgroud)
既然人们已经验证了这可能有用,那么我应该在哪里放置这样的代码块,以便它只能执行一次来创建这些测试?
嗨我从书中得到了代码:
public class Container {
Map<String, Object> components;
public Container() {
components = new HashMap<String, Object>();
Properties properties = new Properties();
try {
properties.load(new FileInputStream("components.properties"));
for (Map.Entry entry : properties.entrySet()) {
String key = (String) entry.getKey();
String value = (String) entry.getValue();
processEntry(key, value);
}
} catch (Exception ex) {
throw new RuntimeException();
}
}
private void processEntry(String key, String value) throws Exception {
String parts[] = key.split("\\.");
if (parts.length == 1) {
Object component = Class.forName(value).newInstance();
components.put(parts[0], component);
} else …Run Code Online (Sandbox Code Playgroud) 我没有游戏编程知识,并且不知道如何存储2D游戏中的级别,如Mario和Sonic(等).
"存储"如何存储数据(地面,平台,按钮,升降机等).
也就是说马里奥的水平显然不是某种从左到右移动的非常宽的图像.
我只是在阅读 R. Martin和M. Martin的C#中的敏捷原则,模式和实践,并在他们的书中建议将所有接口保存在一个单独的项目中,例如.接口.
举个例子,如果我有一个包含所有自定义Gui类的Gui项目,我会将它们的接口保留在Interfaces项目中.具体来说,我在Gui中有一个CustomButton类,我会在Interfaces中保留ICustomButton 接口.
优点是,任何需要ICustomButton的类都不需要引用Gui本身,而只需要更轻量级的Interfaces项目.
此外,如果Gui项目中的一个类发生更改并因此导致它被重建,则只有直接引用CustomButton的项目才需要重新编译,而引用ICustomButton的项目可能保持不变.
我理解这个概念,但看到一个问题:
可以说我有这个界面:
public interface ICustomButton
{
void Animate(AnimatorStrategy strategy);
}
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,它指的是AnimatorStrategy,它是一个具体的类,因此会坐在不同的项目中,我们称之为动画.现在接口项目需要引用动画.另一方面,如果Animation使用Interfaces中定义的接口,则需要引用它.
循环依赖 - "我们来了".
我看到,这个问题的唯一解决方案是,接口中定义的所有方法都接受本身作为接口的输入.试图实现这一点,很可能会产生多米诺骨牌效应,并且很快就需要为最基本的类实现接口.
我不知道我是否愿意在开发中处理这种开销.
有什么建议?
我正在使用SubSonic(v3.0.0.3)使用SimpleRepository对SQLite进行简单的对象映射.使用类型字符串,DateTime,Guid和int的属性,一切正常.当我尝试向对象添加bool(或Boolean)属性时,我可以将它添加到数据库中,但是当我尝试检索它时,我收到以下错误消息:
"类型'System.Byte'的对象无法转换为'System.Boolean'类型."
我尝试过几种不同的方式检索数据.以下是一些示例(当有问题的对象没有任何bool属性时,它会起作用):
var myObjs = repo.All<MyObj>();
Run Code Online (Sandbox Code Playgroud)
要么
var myObjs = from m in repo.All<MyObj>()
orderby m.Title
select m;
Run Code Online (Sandbox Code Playgroud)
我不确定这是一个错误,还是我做错了什么.是否有其他人能够使用SimpleRepository将此数据类型映射到SQLite?
谢谢!
C
如何在mysql日期类型字段中插入NULL或空值(NULL = yes).
如果我尝试插入一个空值,它会插入0000-00-00但我想保持空或NULL.
感谢帮助.
UPDATE
请注意我已将默认值设置为NULL
`payment_due_on` date DEFAULT NULL,
Run Code Online (Sandbox Code Playgroud)
好的,好的
我现在已经开始工作了
function get_mysqlDate($date, $delimiter='/') {
if(check_empty($date)) {
return 'NULL';
}
list($d, $m, $y) = explode($delimiter, $date);
//$datetime = strtotime($date);
return "'".date('Y-m-d', mktime(0,0,0,$m, $d, $y))."'";
}
"... SET mydate = ".get_mysqldate($_POST['mydate'])." ...."
Run Code Online (Sandbox Code Playgroud)
干杯
我正在开发一个我计划使用InnoDB的网络应用程序.但是我读到有时InnoDB默认情况下没有启用,需要更改mysql配置才能启用它......这是真的吗?由于我的网络应用程序将由客户自己安装在他们自己的网站空间,我需要确保我的应用程序尽可能兼容.如果默认情况下禁用InnoDB,那么我必须寻找解决方法.