Rumah  >  Artikel  >  pembangunan bahagian belakang  >  php变量入门教程,php变量基础知识

php变量入门教程,php变量基础知识

WBOY
WBOYasal
2016-07-25 08:51:411024semak imbas
  1. $a = 'hello';
  2. function test() {
  3. var_dump($a);
  4. }
  5. // test();
  6. include 'b.inc';
复制代码

b.inc内容:

  1. echo 'hello';
  2. ?>
复制代码

该程序能够正常输出hello,但是被注释掉的test()不能正常解析,因为变量$a是未定义的。

4、使用全局变量 若在某个函数中想使用全局变量,可以通过下面两种方式。

global关键字 global $a, $b; 在函数中声明全局变量后,对任一变量的所有引用都会指向其全局版本。

$GLOBALS超全局变量数组 $GLOBALS['b'] = $GLOBALS['a'] + $BLOBALS['b']; 用法同global关键字相似。

5、静态变量 静态变量仅在局部函数域中存在,但当程序执行离开此作用域时,其值并不丢失。并且,只在声明时初始化一次,每次调用函数并不会覆盖静态函数的值。

静态变量在声明中用表达式的结果对其赋值会导致解析错误,静态声明是在编译时解析的。

  1. function test() {
  2. static $cnt = 0;
  3. echo $cnt;
  4. $cnt++;
  5. if($cnt test();
  6. }
  7. $cnt--;
  8. }
  9. test();
复制代码

和C语言的static相似,下面这段C代码也可以把0~9十个数字依次输出。

  1. #include
  2. void test(void) {
  3. static int cnt = 0;
  4. printf("%d ", cnt);
  5. cnt++;
  6. if(cnt test();
  7. }
  8. cnt--;
  9. }
  10. int main(void) {
  11. test();
  12. return 0;
  13. }
复制代码

对于变量的static和global定义是以引用的方式实现的。

5、可变变量 可变变量是PHP语言中的一种特殊用法,不知其他语言存不存在。

简而言之,可变变量就是,一个可变变量获取了一个普通变量的值作为这个可变变量的变量名。

  1. $a = 'hello';
  2. $$a = 'world';
  3. echo "$a $$a"; // hello $hello
  4. echo "$a ${$a}"; // hello world
复制代码

当可变变量用于数组时,可能会出现模棱两可的问题。比如,写下$$a[1],编译器会报错的,你想要表达的意思需要用下面两种方式替换掉。

${$a[1]} $a[1]作为一个变量

${$a}[1] $$a作为一个变量并取出变量中索引为1的值。

6、表单变量 当表单提交给PHP脚本时,表单中的信息自动在脚本中可用,可以通过$_GET[]、$_POST[]和$_REQUEST[]访问。

注意,变量名中的点和空格被转换成下划线。例如变成了$_REQUEST["a_b"],下面的示例中展示了表单中标识符的使用。

复制代码

表单处理文件process.php。

  1. var_dump(isset($_POST['my.text']));
  2. var_dump(isset($_POST['mytext']));
  3. var_dump(isset($_POST['my_text']));
  4. var_dump($_POST['my_text']);
复制代码

因为句点不是PHP变量名中的合法字符,输出结果: boolean false boolean false boolean true

string 'h3' (length=2) magic_quotes_gpc配置指令影响到get/post/cooie的值,这个特性已经废弃移除,输入中的单引号、双引号、反斜杠和NULL字符都不会被转义。若需要转义可使用addslashes(),若需要反引用一个引用的字符串需要使用stripslashes()。

php也懂得表单变量上下文中的数组。

例子,使用更复杂的表单变量,并将表单post给自己并在提交时显示数据。

  1. if(isset($_POST['action'])) {
  2. var_dump($_POST);
  3. } else {
  4. $page = $_SERVER['PHP_SELF'];
  5. $s =
  6. STR;
  7. echo $s;
  8. }
复制代码

在heredoc中含有复杂变量时要格外小心,上面这段代码$_SERVER['PHP_SELF']不加花括号会在运行时报错。

  1. if(isset($_POST['action'])) {
  2. var_dump($_POST);
  3. } else {
  4. $s =
  5. STR;
  6. echo $s;
  7. }
复制代码

对于上面这段程序,当用户点击图片某处时,表单会传送到服务器,并加上两个变量sub_x和sub_y,包含了用户点击图片的坐标。

array (size=3) 'action' => string '1' (length=1) 'sub_x' => string '334' (length=3) 'sub_y' => string '282' (length=3) cookies

php可以用setcookie()函数设定cookies,cookies是http信息头的一部分,因此必须在向浏览器发送任何输出之前调用。

php cookie使用:

cookie数据在相应的cookie数组中可用,如果将多个值赋给一个cookie变量,必须将其赋成数组。


Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn