如何用get方法传数组
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用get方法传数组相关的知识,希望对你有一定的参考价值。
<form action="index.php" method="post"><!--get方法也是可以的--!><input type="checkbox" name="chk[]" value="1"> 第一个
<input type="checkbox" name="chk[]" value="2"> 第二个
<input type="checkbox" name="chk[]" value="3"> 第三个
<input type="submit" name="submit" value="提交">
</form>
具体如下:
1、简介C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。
2、基本介绍
C语言,是一种通用的、过程式的编程语言,广泛用于系统与应用软件的开发。具有高效、灵活、功能丰富、表达力强和较高的移植性等特点,在程序员中备受青睐。最近25年是使用最为广泛的编程语言。
3、运算
C语言的运算非常灵活,功能十分丰富,运算种类远多于其它程序设计语言。在表达式方面较其它程序语言更为简洁,如自加、自减、逗号运算和三目运算使表达式更为简单,但初学者往往会觉的这种表达式难读,关键原因就是对运算符和运算顺序理解不透不全。当多种不同运算组成一个运算表达式,即一个运算式中出现多种运算符时,运算的优先顺序和结合规则显得十分重要。在学习中,对此合理进行分类,找出它们与数学中所学到运算之间的不同点之后,记住这些运算也就不困难了,有些运算符在理解后更会牢记心中,将来用起来得心应手,而有些可暂时放弃不记,等用到时再记不迟。
参考技术A 用[]就ok了,比如javascript的写法:1
2
3
4
5
var para = ;
para.arr = [111,'222','ddd'];
$.get('http://www.baidu.com/', para, function()
alert(1);
);
实际就是这种url写法:
https://www.baidu.com/?arr[]=111&arr[]=222&arr[]=ddd
如何用一行代码初始化字符串类型的数组?
【中文标题】如何用一行代码初始化字符串类型的数组?【英文标题】:How do I initialize arrays of type string with one line of code? 【发布时间】:2013-05-27 03:39:26 【问题描述】:我声明了一个大小为 100 的数组 string bin[100];
我希望每个数组都初始化为 ""
。如何用一行初始化所有这些?我尝试了bin[] = "";
之类的方法,但它不起作用。任何帮助将不胜感激。
默认构造函数
RandomString()
input = "";
//bin[] = "";
【问题讨论】:
【参考方案1】:你不需要做任何特别的事情,string bin[100];
就可以了。将为数组的每个元素调用std::string
的默认构造函数。
如果数组是某个类的成员,则在成员初始化列表中对其进行初始化:
struct SomeClass
std::string bin[100];
SomeClass() : bin() // You can initialize arrays with () in the mem-init list
;
*从技术上讲,即使您没有将 bin()
添加到 mem-init 列表中,也会调用默认构造函数,但这是一种很好的做法(因为内置类型将保持未初始化状态)。
在 C++ 中,类的成员通过初始化列表进行初始化。比如下面的例子,代码就有区别:
// First example
struct MyClass
int i;
SomeClass() : i(1)
;
// Second example
struct MyClass
int i;
SomeClass()
i = 1;
;
在第一个示例中,i
在初始化列表中被初始化为1
。在第二个示例中,1
被分配给i
。您可以将上述代码视为执行以下操作:
int i = 1; // First example
int i; // Second example
i = 1;
对于像int
这样的内置类型,两者之间没有太大区别,但是在某些情况下,上述区别可能非常重要,例如当成员被声明为const
时:
struct SomeClass
const int i;
SomeClass()
i = 1; // Error!!
;
在上面的例子中,const成员必须在初始化列表中被初始化。
【讨论】:
我会在我的类构造函数中放入什么?既然我声明了string bin[100];
作为我的成员函数,我会在类构造函数中将初始化留空吗?
我希望bin
是一个成员变量而不是一个函数。在ctor的成员初始化列表中对其进行初始化,例如MyClass::MyClass() : bin() //body of ctor
哎呀,我的意思是说成员变量。而且我真的不明白你在说什么关于在ctor列表中初始化它。我该怎么做?我编辑了我的第一篇文章以包括我的构造函数的样子。
@user2419691:您似乎对初始化列表不熟悉。它们是初始化类成员的 C++ 方式。有关更多信息,请参阅this tutorial。在您的代码示例中,它看起来像这样:RandomString() : bin()
.
@AvraamMavridis:someclass(std::string v[100])
与 someclass(std::string* v)
相同。您不能使用指针来初始化成员数组。您可以做的最好的事情是使用 for 循环或其他一些构造(如 std::copy
)将每个元素复制到数组中。【参考方案2】:
以你的方式,你刚刚初始化了数组的第一个元素,默认的ctor初始化为空字符串。您想初始化这 100 个元素,只需对每个元素执行相同的操作即可。
【讨论】:
以上是关于如何用get方法传数组的主要内容,如果未能解决你的问题,请参考以下文章