| PHP | ECMAScript |
变量命名规则 (相同点) | 变量包含:字母、数字、下划线字符 变量只能以字母或下划线开头 变量不能以数字开头 变量名是区分大小写 | 变量包含:字母、数字、下划线字符 变量只能以字母或下划线开头 变量不能以数字开头 变量名是区分大小写 |
变量命名规则 (不同点) | 关键字和函数名不区分大小写 变量不需要提前定义,使用时直接赋值即可 变量前必须要加一个美元符号($) | 关键字和函数名区分大小写 变量需要提前定义,使用时直接赋值即可 |
变量作用域 | 全局变量:只能在函数外部使用 局部变量:只能在函数内部使用 | 全局变量:任何地方(函数内外)都可以使用 局部变量:只能在函数内部使用 |
系统预定义变量 | 1. $_POST:接收用户表单post方式提交的所有数据 2. $_GET:接收用户表单get方式提交的所有数据 3. $_REQUEST:接收用户get和post方式提交的数据,还有cookie数据 4. $_FILES:接收用户上传的文件信息 5. $_SESSION:存放session数据(存放在服务器) 6. $_COOKIE:存放cookie数据(存放在浏览器) 7. $GLOBALS:全局变量 8. $_SERVER:保存服务器信息 9. $_ENV:保存系统环境信息 | |
自定义变量 | 定义常量 define(name,value[flag]) 常量不能修改或删除 [flag]为可选,默认false,不区分大小写 define("DB_HOST","localhost"); | 无正式规范定义常量语法 采用单词大写的规范命名且不改变 var PI = 3.14; |
系统预定义变量 | 1. PHP_OS:操作系统内核 2. PHP_VERSION:当前PHP的版本 3. PHP_INT_SIZE:int类型所占的字节数 4. PHP_INT_MAX:int类型能表示的最大值 魔术常量:可以自动变化的常量 1. __FILE__:当前脚本的文件路径(绝对路径) 2. __LINE__:当前所在的行数 3. __DIR__:当前脚本所在的目录(PHP4以后才有) 4. __FUNCTION__:当前函数的名字 5. __METHOD__:当前方法的名字(类中的函数) | 1. Infinity; /* 无穷大 */ 2. NaN; /* 非数字值 */ 3. Number.MAX_VALUE; /* 最大数值(JS 可以表示的) */ 4. Number.MIN_VALUE; /* 最小数值(JS 可以表示的) */ 5. Number.NaN; /* 非数字值 */ 6. Number.NEGATIVE_INFINITY; /* 负无穷大 */ 7. Number.POSITIVE_INFINITY; /* 无穷大 */ |
PHP中注意事项:
内存空间划分
栈,堆,代码区,变量区(变量,常量,静态变量)
变量与常量的内存原理图
值传递与地址传递
PHP脚本执行结束后内存是如何处理的?
1. 什么叫做PHP脚本执行结束?
指的是当PHP引擎将用户请求的某个PHP脚本文件(index.php)的最后一行PHP代码执行完毕,称之为脚本执行结束。
2. 脚本结束后内存如何处理?
PHP脚本所占用的所有内存都会被释放,被操作系统回收。
注意:
1. 标签可以没有结束符号,如果在PHP代码之后没有任何其他非PHP代码,那么该结束标签可以没有
有结束标签:如果在结束标签之后还有额外的空格或者空行,PHP在解析的时候,会将该空格当做html的空格或者空行输出,会浪费带宽
如果PHP是嵌入到html代码中,那么建议最好使用结束标签,最后一个PHP结束标签可以没有(后面没有其他代码)
一般情况下,可以没有结束标签
练习:
交换变量值,不使用第三个变量交换两个变量的值
<?php $a = 'php'; $b = 'javascript'; list($a,$b) = array($b,$a); echo $a.'-'.$b; // javascript - php ?>