php 链接中加参数传递

php链接中加参数是在源链接中加“?”,问号之后就可以跟参数列表,para1=value1&para2=value2&para3=value3,多个参数就用&连接。

php是通过GET来获取传递的参数值。

直接来个例子。

例如:

try.php文件内容:

<?php
$user = $_GET['user'];
echo "<p>user: $user</p>";
?>

在地址栏输入http://127.0.0.1:8888/try.php?user=123

再来一个谷歌搜索的例子:

http://www.google.com/search?q=baidu
这样可以写一个谷歌搜索在网页里。当然这里扯远了,已经没跟php有关系了,只是说明下链接后跟参数是通过get来获取参数的。

使用get 的原因是为了限制提交的文本数量。post提交的内容没什么限制,get是有限制的,最多100个字符(http://www.w3school.com.cn/php/php_get.asp),这个应该是出于安全问题。

<form action="http://www.google.com/search" method="get">
<label>search: </label>
<input type="text" name="q"/>
<input type="submit" value="submit" />
当然在不知道是用get还是post的情况下,我们可以用request来获取参数值。因为request对于post和get提交的内容都能够获取到。



在C语言中,`define`添加参数主要用于定义带参数的宏。带参数的宏类似于函数,但在预处理阶段就会进行替换。 ### 带参数宏的基本定义和使用 可以通过在宏名后面的括号中指定参数来定义带参数的宏。例如: ```c #define f(x) #x // 结果将被扩展为由实际参数替换该参数的带引号的字符串 #define b(x) a##x // 连接实际参数 #define ac hello #include &lt;stdio.h&gt; int main(void) { printf(&quot;%s\n&quot;, f(b(c))); // display &quot;b(c)&quot; return 0; } ``` 在这个例子中,`f(x)` 是一个带参数的宏,它将参数 `x` 转换为一个字符串;`b(x)` 是另一个带参数的宏,它将 `a` 和参数 `x` 连接起来。在 `main` 函数中调用 `f(b(c))` 时,会按照宏定义进行替换,最终输出 `&quot;b(c)&quot;` [^2]。 ### 宏替换中的特殊符号 - `#` 符号:用于将宏参数转换为字符串。例如 `#x` 会把参数 `x` 变成一个字符串。 - `##` 符号:用于连接两个标识符。例如 `a##x` 会把 `a` 和参数 `x` 连接成一个新的标识符。 ### 宏定义展开顺序 如果宏替换以 `#` 或 `##` 为前缀,则由外向内展开。这意味着在进行替换时,会先处理外层的宏,再处理内层的宏 [^2]。 ### 变长宏参数 在C语言中还支持变长宏参数,使用 `__VA_ARGS__` 来表示可变参数。例如: ```c #define PRINTF(fmt, ...) printf(fmt, __VA_ARGS__) #include &lt;stdio.h&gt; int main() { PRINTF(&quot;Hello, %s! You are %d years old.\n&quot;, &quot;John&quot;, 25); return 0; } ``` 在这个例子中,`PRINTF` 是一个带变长参数的宏,`__VA_ARGS__` 会替换为传递给宏的可变参数 [^1]。 ### 多行宏参数 如果宏定义比较长,可以使用反斜杠 `\` 来实现多行宏定义。例如: ```c #define LONG_MACRO(x) \ do { \ printf(&quot;Value of x is: %d\n&quot;, x); \ printf(&quot;Twice of x is: %d\n&quot;, 2 * x); \ } while(0) #include &lt;stdio.h&gt; int main() { LONG_MACRO(5); return 0; } ``` 在这个例子中,`LONG_MACRO` 是一个多行宏,使用反斜杠 `\` 来延续到下一行 [^3]。 ### 宏参数的重复定义问题 在使用 `define` 带参数的宏时,要注意避免重复定义的问题。如果重复定义相同参数的宏,可能会导致代码行为符合预期。可以使用 `undef` 来取消宏定义,例如: ```c #define ADD(x, y) (x + y) // ... #undef ADD ``` 在这个例子中,使用 `#undef ADD` 取消了 `ADD` 宏的定义 [^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值