php-day2

一、PHP基本语法

1.PHP标记

1)标准的标记

php代码
?>
PHP 支持与HTML混编 ,混编的文件名,以.php结尾。


php-day2_第1张图片
image.png

官方推荐标记。
如果是纯PHP代码建议省略结束标记。


image.png

2)

php-day2_第2张图片
image.png

3)

短标记


php-day2_第3张图片
image.png

改完配置文件,需重启APACHE


php-day2_第4张图片
image.png

4)<%代码%>

ASP风格标记
修改配置文件


php-day2_第5张图片
image.png

重启apache


php-day2_第6张图片
image.png

5)enctype

  • enctype 属性规定在发送到服务器之前应该如何对表单数据进行编码。
  • 默认地,表单数据会编码为 "application/x-www-form-urlencoded"。就是说,在发送到服务器之前,所有字符都会进行编码(空格转换为 "+" 加号,特殊符号转换为 ASCII HEX 值)。


    php-day2_第7张图片
    image.png

2.语句结束标记

  • ;一行语句结束以分号结尾。
  • js可以不加分号(自动判断结束,补全分号)。
  • 但PHP要严格执行,否则解析出错;


    php-day2_第8张图片
    image.png

3.注释

  • 被注释的代码将不被执行。
  • 在注释里面我们可以写程序的说明,可以更好的有利于团队合作。

1)行注释

//
单行代码不被执行


php-day2_第9张图片
image.png

2)块注释

/多行注释/注释多行代码

php-day2_第10张图片
image.png

二、变量

1.变量介绍

  • 简言之,存储值的容器。$stuNum = 4;
  • 在成语运行过程中,随时可以发生变化的量。

1)定义变量

$开头后面接变量名。


php-day2_第11张图片
image.png

2)变量名的规则

遵循标识符的命名规则,标识符是指在程序员编程过程中起的名字,
如:变量名,常量,函数名。
标识符的命名规则:
①数字字母下滑线组成,不能以数字开头。


php-day2_第12张图片
image.png

②变量名严格区分大小写


php-day2_第13张图片
image.png

③不能使用系统关键字
php-day2_第14张图片
image.png

php-day2_第15张图片
image.png

④建议英文命名,见名识意。
  • age 年龄
  • 通常有两种方式
    • 下滑线命名:
      $goods_info 商品信息。
      以下划线分割两个或两个以上的单词
      下划线线命名一般用于变量名
    • 驼峰命名:
      php-day2_第16张图片
      image.png

      a 大驼峰
      GoodsInfo 每个单词的首字母大写。 一般用于类名,和接口名 b 小驼峰 除了第一个单词其他单词首字母大写。goodsInfo
      常用于函数名

3)可变变量

是一种特殊的变量。
它的变量名 是 另外一个变量的值。


php-day2_第17张图片
image.png

4)变量在内存中的表现形式

  • 变量由变量名和变量值组成;
    $a =100;
  • 内存,用来存储运行的的程序。
  • 变量名,和变量值,是存储在内存中的不同位置。


    php-day2_第18张图片
    image.png
  • 内存组成:
    栈区:空间小,运行速度快,存储,变量名,函数名,常量名等。
    堆区:空间大,但运行速度慢,一般存储复杂数据(数组,和对象等)。
  • 全局数据区: 存储变量值,常量值等。
  • 代码区: 存储函数,方法等。
  • 案例
$a =100;

创建变量时,将变量值100 存储在全局数据区的变量区(产生存储地址0x10001000)
在栈区开辟空间,存储变量名$a,将变量值得存储地址,存储在变量命中。

  • 读取变量时
    读取$a, 先到栈区,拿到在变量区的存储地址0x10001000,去此地址去读取值。

2.变量操作

1)变量声明

  • 变量声明和赋值同时进行。
  • 变量不需要指定数据类型
  • PHP变量有类型。
    变量的值决定了变量的类型。
  • PHP是弱类型语言。
    在程序运行变量还可以设置为其他类型的值


    php-day2_第19张图片
    image.png

2)获取变量的值

php-day2_第20张图片
image.png

php-day2_第21张图片
image.png

3)常见的输出语句

  • Echo 语句
    输出字符串,变量或者表达式。
    同时可以输出多个。是语言结构


    php-day2_第22张图片
    image.png
  • Print语句
    也可以输出字符串,变量或表达式。
    不支持输出多个。也是语言结构


    php-day2_第23张图片
    image.png
  • var_dump
    输出一个或者多个变量的类型,长度和值。
    一般用于打印复杂变量(数组和对象等)


    php-day2_第24张图片
    image.png
  • print_r 输出变量的值
    输出结果较var_dump简洁。


    php-day2_第25张图片
    image.png

4)变量值的修改

age= 19;

5)删除变量

  • 删除变量名与变量值之间的关系。形成未定义变量。
  • 变量名和变量值不会立即消失。
  • PHP有专门的垃圾回收机制来处理。
unset($var)
php-day2_第26张图片
image.png

6)mysql_connect() 函数打开非持久的 MySQL 连接

格式
mysql_connect(server,user,pwd,newlink,clientflag)


php-day2_第27张图片
image.png

3.变量传值

将一个变量传递给另外一个变量。

1) 值传递

php-day2_第28张图片
image.png

num2 = $num1;

  • 获取$num1的值。
  • 在变量区存储100,产生新地址0x10001001,
  • 在栈区,创建变量名num2中
  • 修改一个变量的值,另外一个变量不会改变。


    php-day2_第29张图片
    image.png

    删除一个变量,对另外一个变量没有影响。


    php-day2_第30张图片
    image.png

2)引用传递

地址传递

php-day2_第31张图片
image.png

num2 = &$num1; &取地址符号,它传递的是地址。
执行过程

  • 先获取$num1值的地址0x10001000;
  • 在栈区开辟空间,创建变量$n2,存储地址0x10001000;
  • 修改一个变量的值,另外一个变量也会改变。


    php-day2_第32张图片
    image.png

    删除一个变量,对另外一个没有影响。


    php-day2_第33张图片
    image.png

4.预定义变量

PHP提前定义好的变量,直接使用,无需定义。


php-day2_第34张图片
image.png

1)$_SERVER

["SERVER_NAME"]=> 服务器名
string(15) "www.default.com"
["SERVER_ADDR"]=> 服务器地址
string(9) "127.0.0.1"
["SERVER_PORT"]=> 服务器端口号
string(2) "80"
["REMOTE_ADDR"]=> 客户机地址(remote,远程的意思)
string(9) "127.0.0.1"

2)$_GET

HTTP GET方式提交过来的数据
通过浏览器地址栏传递数据,数据的安全性较低


image.png

案例:
form.html 文件代码


  
    
    菜鸟教程(runoob.com)
  
  
    
      名字: 
      年龄: 
      
  

当用户点击 "Submit" 按钮时,发送到服务器的 URL 如下所示: http://www.runoob.com/welcome.php?fname=Runoob&age=3
"welcome.php" 文件现在可以通过 _GET 数组中的键):

欢迎 !
你的年龄是 岁。

3)$_POST

HTTP POST方式提交过来的数据


php-day2_第35张图片
image.png

4)$_REQUEST

POST + GET的数据


php-day2_第36张图片
image.png

三、常量

1.说明

程序运行过程中,值不会发生改变的量。
常量不能修改和删除。

1)语法

define(常量名,常量值,true/false);


php-day2_第37张图片
image.png

2)注意

  • 常量默认区分大小写。
  • 常量名推荐使用大写
  • 常量不可以重复定义和修改数据。
  • 如果第三个参数设为true,常量不区分大小写。


    php-day2_第38张图片
    image.png

2.常量的获取

1)使用常量名

直接使用常量名获取。
constant()


php-day2_第39张图片
image.png

可以获取特殊的常量。


php-day2_第40张图片
image.png

3.常量在内存中的表示形式

常量区不可以修改。
不可以重新定义或者修改值。


php-day2_第41张图片
image.png

4.预定义常量

1)get_defined_constants()

php-day2_第42张图片
image.png

2)魔术常量

它的值会随着在代码中的位置的改变而改变。
①_ DIR _
当前脚本所在的目录

php-day2_第43张图片
image.png

②_ LINE _
获取当前行号。
php-day2_第44张图片
image.png

③_ FILE _
获取当前脚本的路径+文件名。
php-day2_第45张图片
image.png

四、HP 数据类型

1.标量数据类型

一般指单个数值。
整形,浮点型,字符串类型,布尔类型。


php-day2_第46张图片
image.png

2.复合数据类型

包括数组和对象。
一般包含多个数值,数组中会有多个元素,对象里面会有多个成员属性和成员方法。


php-day2_第47张图片
image.png

3.特殊类型

1)null :

变量未赋值
变量被删除
变量被赋值为null


php-day2_第48张图片
image.png

2)resource

资源类型


php-day2_第49张图片
image.png

php-day2_第50张图片
image.png

4.整型类型

integer

1)整型的表现形式

  • 半斤八两, 一斤16两 ,十六进制。满16进1
  • 一小时60分钟,一分钟60秒, 六十进制。满60进1
  • 计算机底层 二进制,满2进1
  • 十进制 最常用(0-9)
  • 二进制(0 1) 八进制(0-7) 十六进制(0-9-A-F)
  • 八进制 017 一般以0开头
  • 十六进制0x1a 一般以0x开头
  • PHP_INT_MAX 整形最大值


    php-day2_第51张图片
    image.png

    PHP_INT_SIZE:表示整形占据的字节数。4个字节。


    php-day2_第52张图片
    image.png

2)其他进制转换为十进制

按权展开
123 = 3100 +2101 + 1102
017(八进制) = 7
80 +181 = 15
0xa8(十六进制) = 8
160 + 10*161 =168

3)二进制、八进制、16进制之间的转换

一个8进制可以转换成三个二进制位
一个16进制可以转换成四个二进制位


php-day2_第53张图片
image.png

017(八进制) = 001,111(二进制)
010,001,000(二进制) = 210 (八进制)

4)十进制转换为其他进制

转换原则:
整数部分: 除基倒取余 基是指几进制的几 10(十进制)->1010(二进制)


php-day2_第54张图片
image.png

小数部分:乘基 正取整。
乘x取整,直到小数部分为0,整数部分自上而下组织 0.25 ->0.01


php-day2_第55张图片
image.png

5)进制转换函数

php-day2_第56张图片
image.png

decbin(int): 十进制转二进制
decoct(int): 十进制转八进制
dechex(int): 十进制转十六进制
bindec(string): 二进制转十进制
octdec(string): 八进制转十进制
hexdec(string): 十六进制转十进制


php-day2_第57张图片
image.png

5.浮点型类型

价格:99.9 重量:127.3斤

1)浮点数的表现形式

常用格式:1.2 2.3 12.5
科学计数法 1.234e2 eN表示10的N次方


php-day2_第58张图片
image.png

2)说明及注意事项

浮点数是近似的,比较两个浮点数相等是有问题的


php-day2_第59张图片
image.png

最多是14位有效数字 有效数字指从左边第一个不是零的数字算起。


php-day2_第60张图片
image.png
  • 表示范围-1.810^308-----1.810^308
  • 其他编程语言,如C JAVA 有单精度和双精度之分PHP 只实现了双精度
  • 整数范围无法表示的数字,可以使用浮点数。
  • 超出整数范围,自动使用浮点数。
  • 浮点数占据的空间大。


    php-day2_第61张图片
    image.png

6.布尔类型介绍

true,false 表示事物的真假状态。
true 和false 不区分大小写 建议小写
TRUE ,FALSE

1)逻辑判断为假(false)的情况。

整数 0
浮点数 0.0
字符串 ‘0’
字符串 ’’ ‘ ’有空格和小数为true
空数组
null


php-day2_第62张图片
image.png

2)isset()

测试变量是否设置
变量未设置或者设置为NULL,返回false,其他返回true。


php-day2_第63张图片
image.png

3)empty()

判断变量是否为空
逻辑判断为false的变量,使用empty判断,返回true。


php-day2_第64张图片
image.png

4)is_type 系列函数

is_int/is_integer 判断是否是整形
is_float/is_double/is_numeric (判断是否是数值)
is_string (判断是否是字符串)
is_boolean/is_bool
is_array
is_null
is_resource


php-day2_第65张图片
image.png

五、类型判断与转换

1.gettype()

得到的结果:boolean,integer,
double (浮点型返回double,不是float)
string
array
object
null
resource


php-day2_第66张图片
image.png

2.自动转换

PHP 本身是弱类型语言,支持类型的自动转换,数据在参与运算时,会根据实际环境自动转换类型,参与运算。

1)字符串转换为数值类型

遵循原则:

  • 纯数字的字符串转换位相应的数字。
  • 以数字开头的字符串,转换成相应的数字。
  • 不以数字开头的字符串,转换位0
  • 布尔值true 转换为1,false转换为0


    php-day2_第67张图片
    image.png

3.类型强制转换

转换原则:与类型自动转换原则一致。
类型字符串:
int
bool
float
string
array
object

(类型字符串)变量
php-day2_第68张图片
image.png

4.自动转换和强制转换比较

  • 转换之后,原始数据类型不发生转换,只是数据参与的值发生了改变。
  • 自动转换的原则和强制转换的原则一致。


    php-day2_第69张图片
    image.png

5.settype()

  • 将变量设置为指定的类型
  • settype($var, ‘类型字符串’);
  • 返回值为true,或者false
  • 会改变变量的值。


    php-day2_第70张图片
    image.png

你可能感兴趣的:(php-day2)