博客列表 >PHP基本知识学习

PHP基本知识学习

longlong
longlong原创
2020年07月03日 14:15:24810浏览

1. PHP由哪几部分组成

PHP由一对标签和中间代码段组成,示例如下:

  1. <?php
  2. //代码段
  3. ?>
  • <?php:表示起始标签

  • ?>:表示结束标签

  • //:表示单行注释

  • #:也可以表示单行注释

  • /*...*/:表示多行注释

  • ;:表示语句分隔符或语句的结束

注:在单独的纯文本PHP文件中,推荐不要加结束标签,因为这样可以避免被引用时出错,出现一些不可见字符,但是在PHP混编时,比如和HTML写在一个文件中时,就必须加上结束标签了。

接下来,看一个小小的示例:

  1. <?php
  2. //代码段
  3. function sum ( $a , $b ) {
  4. return $a + $b;
  5. }
  6. //打印输出结果
  7. echo '两数相加之和是:'.sum ( 10 , 5.6 );

2. PHP打印输出方式

  • echo:支持同时打印多个变量,HTML标签,单一或多个字符串,没有返回值,不能打印数据类型

  • print:它和echo的区别在于只能打印单一变量,但有返回值

  • var_dump():能够打印变量的完整信息,即:变量的类型,变量的长度,变量的数值

  • var_export():返回一个变量的字符串表示(源代码)

  • print_r():以人性化方式打印,通常用于复合数据类型

示例如下:

  1. <?php
  2. //php打印输出方式
  3. $hello = 'Hello';
  4. $world = 'World';
  5. //echo 可打印多个变量,无返回值
  6. echo $hello,$world,'<br>';
  7. echo '<span style="color:red;">'.$world.'</span>';
  8. echo '<hr>';
  9. //print 打印单一变量,有返回值
  10. print $hello.$world.'<br>';
  11. echo print $world;//返回值为1
  12. echo '<hr>';
  13. //var_dump() 完整显示变量信息
  14. var_dump($hello);
  15. echo '<br>';
  16. var_dump(666);
  17. echo '<hr>';
  18. //var_export() 返回字符串表示(源代码)
  19. var_export($world);
  20. echo '<br>';
  21. var_export($hello.$world);
  22. echo '<hr>';
  23. //print_r() 以人性化方式打印,支持第二个参数,常用于复合类型数据
  24. $arr = ['fish','ball','film'];
  25. echo print_r($arr,true),'<br>';
  26. //结合html的pre标签,可以原样输出
  27. echo '<pre>'.print_r($arr,true).'</pre>' ;

3. PHP变量

3.1 变量的命名:

  • 变量以 $ 符号开头,其后是变量的名称

  • 变量要区分大小写

  • 变量名称只能包含字母数字字符和下划线,且不能以数字开头

  • 命名时一定要做到望文生义,不要乱取名,那样无意义

  • 扩展知识:JS中变量和函数都要区分大小写,但在PHP中,变量区分大小写,函数、方法名、类名都是不区分的。

示例如下:

  1. <?php
  2. // 重要知识点:
  3. // 1. 变量是临时储存数据的容器
  4. // 2. 变量是实现数据复用的手段
  5. //尽量不要用$a这种方式命名。无意义
  6. $a = 'Jack';
  7. $name = 'Alice';
  8. echo $a ,'<br>', $name ,'<hr>';
  9. //变量名只能包含数字,下划线,字母,且不能以数字开头
  10. $_age = 21;
  11. $name2 = 'Peter';
  12. // $2name = 'Lisa'; 这种命名会报错
  13. echo $name2.'的年龄是:'.$_age.'<hr>';
  14. $tel = 'apple';
  15. $TEL = 'honor';
  16. //变量名不区分大小写
  17. echo $tel ,'<br>', $TEL;
  18. echo '<hr>';
  19. //函数名、方法名、类名都不区分大小写
  20. function show(){
  21. echo '我是一个函数','<br>';
  22. }
  23. show();//尽量这样使用
  24. SHOW();

3.2 变量的动态

变量的类型随值的变化而动态变化,示例如下:

  1. <?php
  2. //变量的动态:变量的类型随值而变化
  3. $num = 123;
  4. var_dump($num);
  5. echo '<br>';
  6. $num = '456';
  7. var_dump($num);

3.3 变量的传递:

  • 值传递:这是默认的方式,直接将等号右边的变量的值赋值给左边变量

  • 引用传递:在等号的右值前加“&”(取地址符),这时会将右边变量的内存地址传给左边变量,不再是单纯的赋值操作

示例如下:

  1. <?php
  2. //传递分为值传递和引用传递两种方式
  3. // 1.值传递(默认方式)
  4. $num1 = 100;
  5. $num2 = $num1;
  6. echo $num1.'<hr>';
  7. // 2.引用传递:将内存地址传递过去
  8. // 在等号右边加上取地址符“&”
  9. $num3 = &$num1;
  10. $num3 = 200;
  11. echo $num1;

3.4 可变变量

变量名可以动态的创建,示例如下:

  1. <?php
  2. //可变变量:一个变量的变量名可以动态的设置和使用
  3. $str = 'hello';
  4. // $hello = 'world';变量名和上个变量的值是一样的
  5. $$str = 'world';
  6. echo "{$str} {$$str}";
  7. echo '<hr>';
  8. echo "{$str} {$hello}";
  9. //输出结果一样

3.5 变量的检测和删除

  • isset():检测变量,当变量存在且值不为NULL的时候才是ture

  • unset():删除变量,没有返回值,直接执行

  • empty():变量为空时,返回true,多用于表单元素检测

  • 扩展知识:error_reporting(E_ALL),在变量前加上这个函数,打开所有报错,方便调试

示例如下:

  1. <?php
  2. /*
  3. 当变量为定义时,不会输出也不会报错,在调试的时候,
  4. 通常需要在查看这个变量之前打开报错,需要用到一个
  5. 函数:error_reporting(E_ALL)
  6. */
  7. //打开所有报错
  8. error_reporting(E_ALL);
  9. //使用这个函数之后就会有报错功能了
  10. // echo $name;
  11. //变量检测:isset(),变量不为空且值不为null时才是true
  12. $name = '孙悟空';
  13. // $name = null;
  14. if ( isset($name) ) { echo 'name:'. $name;}
  15. else { echo '没有定义此变量';}
  16. echo '<hr>';
  17. //删除变量:unset(),没有返回值,直接执行
  18. unset($name);
  19. if ( isset($name) ) { echo 'name:'. $name;}
  20. else { echo '没有定义此变量';}
  21. echo '<hr>';
  22. // empty():检测变量是否为空,多用于表单元素检测
  23. $sex = '';
  24. if( empty($sex) ){ var_dump($sex); }

4. 数据类型

数据类型分为:基本类型、复合类型、特殊类型

  • 基本类型分:字符串类型、数值类型、布尔类型

  • 复合类型分:数组、对象

  • 特殊类型分:NULL、资源

示例如下:

  1. <?php
  2. //数据类型:基本数据、复合数据、特殊数据
  3. // 1. 基本数据类型,又称标量类型或单值类型
  4. // 字符串
  5. $username = 'Peter';
  6. var_dump($username);
  7. echo '<hr>';
  8. // 数值
  9. $num1 = 123;
  10. $num2 = 1.5;
  11. var_dump($num1);
  12. var_dump($num2);
  13. echo '<hr>';
  14. // 布尔
  15. $isHappy = true;
  16. var_dump($isHappy);
  17. echo '<hr>';
  18. // 2. 复合数据类型,又称多值类型
  19. // 数组
  20. $cars = ['BMW','Volvo','LAND-ROVER'];
  21. var_dump($cars);
  22. echo '<br>';
  23. // 原样输出
  24. echo '<pre>'.print_r($cars,true).'</pre>','<hr>';
  25. // 对象:是属性和方法的无序集合
  26. $obj = new stdClass;
  27. $obj -> name = 'Mark';
  28. $obj -> age = 33;
  29. $obj -> hobby = 'ball';
  30. echo $obj -> hobby,'<hr>';
  31. // 3. 特殊类型
  32. // NULL
  33. $null = null;
  34. var_dump($null);
  35. echo '<hr>';
  36. // 资源类型
  37. $resourse = fopen('1.PHP的组成.php','r');
  38. var_dump($resourse);

5. 变量类型的转换

  • 自动转换:自动转换是由php系统偷偷进行的,不需要用户参与

  • 强制转换:在需要转换的变量前加上数据类型或使用转换函数

注:以上转换都是属于临时转换,只有在运算过程中临时转换一下,进行运算操作,其原始数据类型还是不变,如果要永久转换,需要用到一个函数:settype(值1,值2),值1表示需要转换的变量,值2表示需要转换的类型

示例如下:

  1. <?php
  2. // 自动转换,偷偷的进行,不需要用户参与
  3. $num = 100;
  4. $str1 = '100per';
  5. $str2 = 'fam200';
  6. $bool1 = true;
  7. $bool2 = false;
  8. $null = null;
  9. echo $num + $str1,'<hr>'; // 从字符串第一个字符开始解析,遇到数字取出来,100,相加得200
  10. echo $num + $str2,'<hr>'; // 从字符串第一个字符开始解析,没有遇到数字,直接停止,相当于为0
  11. echo $num + $bool1,'<hr>'; // 布尔值true,相当于1
  12. echo $num + $bool2,'<hr>'; // 布尔值false,相当于0
  13. echo $num + $null,'<hr>'; // NULL类型,也相当于0
  14. echo $str1.$num,'<hr>'; // .号表示字符串拼接操作,会将100转换为'100'
  15. echo $bool1.$bool2,'<hr>';
  16. echo $bool1.$str2,'<hr>';
  17. // 强制转换 :在变量前加上变量类型或使用转换函数
  18. // 此时,没有警告框弹出了,
  19. echo $num + (int) $str2,'<hr>';
  20. // 类似的,使用转换函数,推荐使用此方法
  21. echo $num + intval($str2),'<hr>';
  22. // 转换后,虽然能运算,但是数据类型是不变的,还是string
  23. echo gettype($str2),'<hr>';
  24. // 永久转换,使用settype()函数,第一个值是变量名,第二个值是变量类型
  25. settype($str2,'int');
  26. echo gettype($str2);
  27. /*
  28. 扩展知识:
  29. 允许转换的PHP数据类型有:
  30. 1.(int)、(integer):转换成整型
  31. 2.(float)、(double)、(real):转换成浮点型
  32. 3.(string):转换成字符串
  33. 4.(bool)、(boolean):转换成布尔类型
  34. 5.(array):转换成数组
  35. 6.(object):转换成对象
  36. PHP数据类型转换函数:
  37. 1. intval() 转为整型
  38. 2. floatval() 转为浮点型
  39. 3. strval() 转为字符串
  40. 通用类型转换函数:
  41. settype(mixed var,string type)
  42. 此函数可将数据类型永久转换
  43. */

6. 总结

今天学习了PHP相关的一些基础知识,了解了PHP代码的组成部分,以及常用的打印输出方式。另外,还学习了PHP变量相关知识和数据类型。除了需要去记忆一些基本概念(比如:什么情况下使用怎样的打印输出方式),还要学会动态变量如何操作以及变量类型如何转换等。

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议