1、php代码是包含在代码块里的,就像javascript一样
<?php ?>
<? ?> //简写形式
<?= ?>
//代码块中引入另一个php文件:
//require和include
require "test.php"; //是优先引入(即在文件头就会引入),若找不到引入文件,产生错误并停止运行脚本
include "test.php"; //是读到这一行时才引入.若找不到引入文件,产生警告脚本将继续运行
//PHP中对大小写敏感处理 是比较乱的,详见后面小节
2、PHP变量和常量、作用域
//变量以 "$"开头,自动识别类型
//函数内部定义的是局部变量,函数外定义的是 全局变量,还有一种超全局变量(系统预定义的特殊变量)
$str = "nostring";
function Fun()
{
$str = "string";
var_dump($str); //string(6) "string"
}
function Fun2()
{
global $x; //声明变量,变量的定义在全局
var_dump($str); //string(8) "nostring"
}
php超全局变量(系统预定义变量,后面还有很多预定义的特殊变量、常量)
$GLOBALS //全局作用域中的全部变量数组,$GLOBALS[index],存在就取值,不存在就创建
//例子: $GLOBALS["T"]=2;
$_SERVER //包含脚本所在服务器的一些信息,如:路径和脚本位置的信息
$_REQUEST //包含所有请求信息,包括$_GET,$_POST,$_COOKIE
$_POST //是一个数组,存有表单get/post过来的key-value
$_GET
$_COOKIE
$_SESSION //存session域数据,先 session_start();开启SESSION;
$_FILES
$_ENV
//PHP中常量定义:
define($PI,3.14); //define(name,value);
3、数据类型(8种)
string(字符串):"string",'string'
integer(整型): 1
float(浮点型,也作 double ): 1.2
boolean(布尔型) :true/false;
//两种复合类型:
array(数组)
object(对象)
//两种特殊类型:
resource(资源)
NULL(空)
//查看变量类型:gettype()和is_type 系列函数:
//由于历史原因gettype(float)返回的是 double,而不是 float 。
var_dump($var); //查看某个表达式、变量的值和类型
gettype($var); //查看变量的类型
is_int()/is_float(); //判断变量类型
4、php语句:
//php语句类似JAVA等。语句结束需要";",语句块有 {},有switch,foreach等
for (arr as i) //foreach,注意是as,并且iterable在前
{
echo i;
}
switch($str) //字符串可以用于switch
{
case "string":
break;
}
5、数组
数组和js类似: 数组就是键值对,默认key是从0开始自动分配,可以自己指定Key 为字符串等,这样就是map
//创建数组三种方式:
$arr = new Array("key"=>value); //指定key-value
new Array(value); //指定value,key由系统分配
$arr[0] = "" //指定key-value
6、字符串
系统肯定提供了很多字符串处理函数,具体见参考手册
//字符串连接,一般用点号".",但"."效率不如.= 和array-join
$str = "123"."456"; //123456
$str .= "789"; //123456789
$arr=array(0);
array_push($arr, $str);
$str = join($arr); //0123456789
7、PHP的函数
//函数名对大小写不敏感
//和javascript的函数类似
function Fun($var = "")
{
return NULL;
}
8、大小写敏感问题
//一、大小写敏感的
常量名、变量名区分大小写
php.ini配置项指令区分大小写
//二、不区分大小写:
函数名、方法名、类名 不区分大小写;
魔术常量不区分大小写
NULL、TRUE、FALSE不区分大小写
类型强制转换,不区分大小写
(int),(integer) – 转换成整型
(bool),(boolean) – 转换成布尔型
(float),(double),(real) – 转换成浮点型
(string) – 转换成字符串
(array) – 转换成数组
(object) – 转换成对象