PHP 能够生成动态页面内容
PHP 能够创建、打开、读取、写入、删除以及关闭服务器上的文件
PHP 能够接收表单数据
PHP 能够发送并取回 cookies
PHP 能够添加、删除、修改数据库中的数据
PHP 能够限制用户访问网站中的某些页面
PHP 能够对数据进行加密
变量
-
PHP 是一门松散类型的语言,不必向 PHP 声明变量的数据类型。
-
PHP 支持 8 种原始类型,其中包括四种标量类型,两种复合类型和两种特殊类型。
-
变量以
$
开头,PHP 没有创建变量的命令,变量会在首次为其赋值时被创建。 -
与 js 不同,PHP 函数之外声明的变量拥有 global 作用域,只能在函数外访问;
函数内部声明的变量拥有 local 作用域,只能在函数内部访问。
-
global
关键词,用于访问函数内的全局变量。(就是说加上关键词 global,这个变量就变成了全局变量) -
static
关键词,一个函数执行后,当我们需要不删除某个局部变量时,那首次声明此变量使用static
-
超全局变量,PHP中的许多预定义变量都是“超全局的”,这意味着它们在一个脚本的全部作用域都可用,且不需要加关键词 global 就可以访问。以下是部分超全局变量。
$GLOBALS
保存所有的全局变量。
$GLOBALS[index]
。例如有一个全局变量$goods
要在局部中使用,可以$GLOBALS[goods]$_SERVER
保存关于报头、路径和脚本位置的信息。
$_REQUEST
用于收集HTML表单提交的数据
$_POST
广泛用于收集 post 请求的表单数据。
$_GET
广泛用于收集 get 请求的表单数据。
$_FILES
$_ENV
$_COOKIE
$_SESSION
$x = 5; $z = 100; function sum(){ global $x; $x = 50; $GLOBALS['z'] = 500; static $n = 0; echo $n; $n++; } sum();//0 sum();//1 sum();//2 echo $x;//50 echo $z;//500
//常用方法
var_dump($var);//输出数据类型&长度(字符串,数组,对象)&值
echo $var;//输出数据
memory_get_usage();//消耗内存
unset($var)//注销变量$var的定义
date('m-d',time())//日期
四种基本型
-
布尔型(bool)
-
整型(int)
-
浮点型(float):小数及科学记数法
-
字符串(string):单引号及双引号都可以。当引号中间有变量时,单引号中的变量会变成字符串,而双引号中的变量值会连接字符串。
另外当字符串特别长时还可以用:
<<<GOD GOD;
来包括字符串
两种特殊类型
- 资源(resource)
<?php
$file_handle = fopen('wang.txt','r');//打开wang.txt
if ($file_handle) {//判断是否存在
while (!feof($file_handle)) {//判断是否到末尾
$line = fgets($file_handle);//读取一行
echo $line;//输出一行
echo '<br />';//换行
}
}
fclose($file_handle);//关闭wang.txt
$myfile = fopen('wang.txt','w');//创建文件
fwrite($myfile,'这是文件的文本');//输入内容,或者变量
?>
- NULL(NULL)
<?php
error_reporting(0); //禁止显示PHP警告提示
$var;
var_dump($var);//NULL
$var1 = null;
var_dump($var1);//NULL
$var2 = NULL;
var_dump( $var2);//NULL
$var3 = "节日快乐!";
unset($var3);//注销$var3的定义
var_dump($var3);//NULL
?>
两种复合类型
- 数组(array)
$arr = array('123' => array('1','2','3'),'456' => array('4','5','6'));
- 对象(object)
/**
* 车
*/
class Car
{
var $color;
function Car($color = 'green')
{
$this->color = $color;
}
function sayColor()
{
return $this->color;
}
}
$ferrari = new Car('yellow');
常量
定义常量(常量名称前没有$符号,与变量不同,常量贯穿整个脚本,是自动全局的。)
//定义常量
define(string $constant_name, mixed $value,[$case_sensitive = true]);
//判断常量是否被定义
defined(string $constant_name)//true,false
<?php
$p = "PII";
define("PI",3.14);
define($p,3.14);
echo PI;//3.14
echo "<br />";
echo PII;3.14
?>
//读取常量
define("PI",3.141592653);
PI//直接常量名读取
constant("PI")//使用constant读取
常见系统常量
__FILE__//php程序文件名。它可以帮助我们获取当前文件在服务器的物理位置
__LINE__//php程序文件行数。它可以告诉我们,当前代码在第几行
PHP_VERSION//当前解析器的版本号。
PHP_OS//执行当前PHP版本的操作系统名称。它可以告诉我们服务器的操作系统名称。
PHP的运算符
与 javascript 相同的就不写了,只讲区别。
赋值运算符
=
将右边表达式的值复制一份,交给左边的运算数。即首先给左边的运算数申请一块内存,然后将复制的值放到这个内存中去
&
引用赋值,意味着两个变量都指向同一个数据。它将使两个变量共享一块内存,如果这个内存存储的数据改变了,那个两个变量的值都会发生变化。
$a = "原样";
$b = $a;
$c = &$a;
$a = "改变后"
echo $b;//原样
echo $c;//改变后
逻辑运算符
逻辑与或有两种形式,是因为运算符优先级的问题
逻辑与:and
&&
逻辑或:or
||
逻辑非:!
逻辑异或:xor
判断两个值是否不同,如果不同,值为true,否则为false
字符串连接符
.
.=
PHP的循环结构、条件语句
while
do...while
for
if else
switch case default
跟javascript一样
foreach
常用于遍历数组,一般有两种方式:不取下标、取下标
foreach($arr as $val){}
foreach($arr as $key => $val){}
echo 和 print 语句
-
两个输出的字符串中都可以包含 HTML 标记。
-
使用双引号时可以输出变量。
-
值为 true 时,输出 1,为 false 时,不输出。
-
echo 能够输出一个以上的字符串,echo 比 print 稍快,因为它没有返回值。
-
print 只能输出一个字符串,并始终返回 1
$txt = 'learn PHP'; echo 'hello'; echo 'This','is','my','cat'; echo "Happy to $txt"; print 'This is my cat';
PHP的函数
PHP 定义函数时,可以传入默认参数值。
function sum($a = 20, $b = 50){
return $a + $b;
}
sum();//70
sum(1,1);//2
字符串函数
strlen($str);//字符串长度
strpos($str,str);//查找字符串$str中的str,找到匹配,则返回首个匹配的字符index,未匹配,则返回false;
数组函数
count($arr);//用于返回数组的长度
//数组排序,直接可以对多位数进行排列,不像js需要加回调函数
sort()//以升序对数组排序
rsort()//以降序对数组排序
asort()//根据值,以升序对关联数组进行排序
ksort()//根据键,以升序对关联数组进行排序
arsort()//根据值,以降序对关联数组进行排序
krsort()//根据键,以降序对关联数组进行排序