php基础语法-常量、变量、数据类型

php的四种头文件

2种标准模式的头文件

<?php ?>

短标签模式 <? ?> 修改配置文件short_open_tag=on

asp模式 <% %> 修改配置文件asp_tags=on

php的基本语法

  1. php每条语句结束时必须加上结束符;,除非是代码的最后一条语句,并且要有结束标签。
  2. php在单独存在的时候,结束标签可以省略,但是,如果是和html混编在一起,并且结束时后面还有Html代码,则结束标签不能省略
  3. php的输出。
1
2
3
echo 
print
var_dump 3个 类型,长度,值

变量

$变量名 = 变量值;
变量名是由字母,数字和下划线组成,但是数字不能开头,也可以是中文。
帕斯卡命名,驼峰命名,下划线命名。
删除:unset(), 删除的是变量名和变量的引用,保留了变量值。
值传递和引用传递:
$变量名1=$变量名2 复制的是值,两个变量是独立存在的,修改一个不影响另一个结果
$变量名1=&$变量名2 复制的是变量的引用,两个变量同时指向一个变量值,修改一个变量,另一个也会发生变化。

九大超全局预定义数组变量

$_GET : 获取地址栏提交的数据
$_POST : 获取表单post提交的数据
$_REQUEST : 既能获取get提交的数据也能获取post提交的数据
$_SERVER : 获取服务器的信息
$_COOKIE : 获取cookie存储的数据
$_FILE : 获取文件信息
$_SESSION : 获取session信息
$_ENV : 在linux系统下获取的信息
$GLOBALS : 设置一个超全局变量

$_GET获取方式:

表单提交
提交
js提交

?: 分割域名和get提交数据
=: 下标和值的分割
&: 获取的不同元素之间的分割。

$_POST获取方式:表单提交
$_POST的安全性能更高,
$_POST获取的大小更大
$_POST 可以获取各种数据类型
$_GET只能获取字符串。

$_REQUEST 理解成$_GET+$_POST

既可以获取get数据也可以获取post数据
默认情况下如果get和post提交的数据发生冲突,以post提交的数据为主。
修改方法:打开php.ini,搜索 request_order,将GP改成PG则以get数据为主

常量:

define(“常量名”,‘常量值’,boolean)

常量名:如果直接输出,则必须是字母数字和下划线组成,中文也可以。
如果想输出特殊的函数,使用constant(‘常量名’)进行输出。

defined(‘常量名’)判断常量是否已经被定义。

1
2
3
4
5
6
7
define("^_^", "老的常量值");
if (!defined("^_^")) {
define("^_^", "新的常量值");
}else{
echo "常量已经定义:";
}
echo constant("^_^");

get_defined_constants() 获取所有已经被定义过的常量
魔术常量:
披着常量外皮的变量。
LINE 获取代码当前的行数
FILE 获取文件所在的路径

const 常量名=值。

数据类型

标量数据类型
整型 int
浮点型 float
布尔型 boolean
字符串 string

复合数据类型
数组 array
对象 object

特殊数据类型
空型 null
资源 resource

整型
四个字节,32位,第一位为符号位 0为正 1为负
最大值 $$2^31-1 -2^31$$ 如果超出最大值,则会变成浮点型。
PHP_INT_MAX 可以获取Int类型的最大值

进制转换
十进制 转其他进制使用除法
从下往上读取
其他进制转换成十进制使用乘法

2 : bin
8 : oct
10 : dec
16 : hex
二进制转换为十进制:
bindec(‘需要转换的数字’)
八进制转换为十进制:
octdec(‘需要转换的数字’)
十六进制转换成十进制:
hexdec(‘需要转换的数字’)
十进制转换为二,八,十六进制:
decbin(); decoct(); dechex();

浮点型
有效数字是14位
如果要表示一个有效数字超出14位的数字,使用科学记数法。
aEb a10^b
aE-b a
10^-b
约(1.8E308)
浮点型的比较是不标准的。
浮点型的进制转换
十进制到二进制
乘法
从上往下读取。
绝大情况下获取的数字都是无限循环小数,所以,php只能取他的近似值。

布尔型
只有真和假,一般在条件判断中使用。
整型:值为零的情况下是false其他都是true
字符串:字符串0,和空的情况下,是false,其他都是true
其他数据类型:只有空的情况下,结果为false,其他都是true

字符串
单引号:若输出字符串使用单引号速度较快
双引号:会解析引号内的内容,如果包含的是变量会转换成结果
heredoc:

语法
<<<heredoc
…………………..
………
heredoc;

nowdoc:

语法
<<<’heredoc’
…………….
…………
heredoc;

注意:

前后名称可以随意起但是必须要一致。
结束名称必须要在当前行的最左边。
结束名称后面必须要加;
heredoc可以解析php中的变量,但是nowdoc不能解析php中的变量。他俩的区别和单引号双引号的区别非常的相似
nowdoc是高版本php中才支持的语言

/php会将机器语言,存储在内存之中/