php概念总结

来源:互联网 发布:上海宏知检测 编辑:程序博客网 时间:2024/06/10 04:28

=> 是数组成员访问符号

 

-> 是对象成员访问符号

 

类的变量使用 var 来声明, 变量也可以初始化值

 

$this 在php语言里是个特定的变量,它代表了类本身,

 

->是访问其类成员的操作符,$this->$name = $value

变量$this和->结合使用能够在类自身之中访问任何属性或 方法

这句代码意思是:将当前类的name变量的值设置为 $value.

 

PHP 变量规则:

变量以 $ 符号开始,后面跟着变量的名称

 

变量名必须以字母或者下划线字符开始

 

变量名只能包含字母数字字符以及下划线(A-z、0-9 和 _ )

变量名不能包含空格

变量名是区分大小写的($y 和 $Y 是两个不同的变量)

 

$GLOBALS[index] 的数组中。 index 保存变量的名称。

这个数组可以在函数内部访问,也可以直接用来更新全局变量。

 

static:某个局部变量不会删除。静态

Canvas缩略图

 

PHP echo 和 print 语句

echo 和 print 区别:

 

fgetc()从文件读取字符 移动。

 

使用fgets()和feof()从一个文件读取行

使用fread()函数从文件读取任意数量的数据

fseek()函数允许我们在一个文件中修改当前的位置

 

 

 

 

use_include_path这是一个布尔值 表明函数是否应该搜索文件名的完整

 

offset 读取从哪里开始

maxlen读取数据的最大长度以字节位单位。

flock锁定文件

 

popen 打开到进程和离开进程的管道

exec()运行命令

 

 

system()函数和exec()函数类似因为他们都启动一个外部的应用程序

并且它使用一个标量变量来储存返回值

例:system("/path/to/somecommand", $return_va1);

passthru输出二进制数据

 

php颜色

 

纯红 255.0.0

纯绿 0.255.0

纯蓝 0.0.255

255.255.255

0.0.0

暗紫 153.153.153

浅灰色 204.204.204

 

// 这是单行注释

/*

这是多行注释块

它横跨了

多行

*/

 

 

 

echo - 可以输出一个或多个字符串

print - 只允许输出一个字符串,返回值总为 1

 

提示:echo 输出的速度比 print 快, echo 没有返回值,print有返回值1。

变量是用于存储信息的"容器":

 

var_dump()是判断一个变量的类型与长度,并输出(变量的【数值】);

 

PHP 中,有三种类型的数组

数值数组 - 带有数字 ID 键的数组

关联数组 - 带有指定的键的数组,每个键关联一个值

多维数组 - 包含一个或多个数组的数组

 

自动分配 ID 键(ID 键总是从 0 开始):

$cars=array("Volvo","BMW","Toyota");

人工分配 ID 键:

$cars[0]="Volvo";

$cars[1]="BMW";

$cars[2]="Toyota";

 

这里有两种创建关联数组的方法:

$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");

or:

$age['Peter']="35";

$age['Ben']="37";

$age['Joe']="43";

 

遍历并打印数值数组中的所有值,您可以使用 for 循环,如下所示:

实例:$cars=array("Volvo","BMW","Toyota");

for循环执行代码块指定的次数,或者当指定的条件为真时循环执行代码块。

for (初始值; 条件; 增量)

{

    要执行的代码;

}

 

遍历(对数组中的每一个值进行操作)并打印关联数组中的所有值,您可以使用 foreach 循环

foreach 循环用于遍历数组。可以访问数组中的每一个元素啊~比如要对数组中的每一个元素都有操作,你可以在遍历中进行操作了 可以知道数组的下标和元素 使用会很方便

 

例:$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");

<?php

$cars=array("Volvo","BMW","Toyota");

$arrlength=count($cars);

 

for($x=0;$x<$arrlength;$x++)

{

    echo $cars[$x];

    echo "<br>";

}

?>

 

<?php

$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");

 

foreach($age as $x=>$x_value)

{

    echo "Key(键)=" . $x . ", Value(值)=" . $x_value;

    echo "<br>";

}

?>

 

 

 

PHP 超级全局变量列表:

$_GLOBALS

$_SERVER变量由 Web 服务器设定或者直接与当前脚本的执行环境相关联。

 

$_REQUEST

$_POST经由 HTTP POST 方法提交至脚本的变量。

 

$_GET经由 HTTP GET 方法提交至脚本的变量。

$_FILES

$_ENV执行环境提交至脚本的变量。

 

$_COOKIE经由 HTTP Cookies 方法提交至脚本的变量

 

$_SESSION当前注册给脚本会话的变量

 

 

<?php

$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");

asort($age);

?>

 

sort() - 对数组进行升序排列

rsort() - 对数组进行降序排列

asort() - 根据关联数组的值,对数组进行升序排列

ksort() - 根据关联数组的键,对数组进行升序排列

arsort() - 根据关联数组的值,对数组进行降序排列

krsort() - 根据关联数组的键,对数组进行降序排列

 

switch 语句 - 在若干条件之一成立时执行一个代码块

switch 语句用于根据多个不同条件执行不同动作

default 语句用于不存在匹配(即没有 case 为真)时执行。

数组能够在单个变量中存储多个值:

 

array:键和值得一个有序的集合。

object:类的一个实例。new

Resource 资源类型

资源 resource 是一种特殊的变量,保存了到外部资源的一个引用。资源是通过专门的函数来建立和使用的。

 

 

do...while 语句会至少执行一次代码,然后检查条件,只要条件成立,

就会重复进行循环。

 

php函数语法

function functionName()

{

要执行的代码;

 

PHP 函数准则:

函数的名称应该提示出它的功能

函数名称以字母或下划线开头(不能以数字开头)

 

八个魔术常量

__LINE__

文件中的当前行号。

 

__FILE__

文件的完整路径和文件名。

 

__DIR__

文件所在的目录。

 

__FUNCTION__

函数名称(PHP 4.3.0 新加)

 

__CLASS__ 是调用 trait 方法的类的名字

__TRAIT__

Trait 的名字(PHP 5.4.0 新加)

 

优先顺序是当前类中的方法会覆盖 trait 方法,

trait 方法又覆盖了基类中的方法。

__METHOD__

类的方法名

 

__NAMESPACE__

当前命名空间的名称(区分大小写)。

 

默认情况下,所有常量、类和函数名都放在全局空间下

在声明命名空间之前唯一合法的代码是用于定义源文件编码方式的 declare 语句。

所有非 PHP 代码包括空白符都不能出现在命名空间的声明之前。

 

<?php

function test() {

    echo  '函数名为:' . __FUNCTION__ ;

}

test();

?>

以上实例输出结果为:

函数名为:test

 

 

命名空间使用

PHP 命名空间中的类名可以通过三种方式引用:

非限定名称,或不包含前缀的类名称,例如 $a=new foo(); 或 foo::staticmethod();。

如果当前命名空间是 currentnamespace,foo 将被解析为 currentnamespace\foo。

如果使用 foo 的代码是全局的,不包含在任何命名空间中的代码,则 foo 会被解析为foo。

 警告:如果命名空间中的函数或常量未定义,则该非限定的函数名称或常量名称会被解析为全局函数名称或常量名称。

限定名称,或包含前缀的名称,例如 $a = new subnamespace\foo(); 或 subnamespace\foo::staticmethod();。

如果当前的命名空间是 currentnamespace,则 foo 会被解析为 currentnamespace\subnamespace\foo。

如果使用 foo 的代码是全局的,不包含在任何命名空间中的代码,foo 会被解析为subnamespace\foo。

完全限定名称,或包含了全局前缀操作符的名称,例如, $a = new \currentnamespace\foo(); 或 \currentnamespace\foo::staticmethod();。

在这种情况下,foo 总是被解析为代码中的文字名(literal name) currentnamespace\foo。

 

 

PHP中“::”这个叫范围解析操作符,又名域运算符 

 

PHP支持两种抽象的访问当前命名空间内部元素的方法,__NAMESPACE__ 魔术常量和namespace关键字

 

常量 __NAMESPACE__ 在动态创建名称时很有用

使用命名空间:别名/导入 use

 

导入操作是在编译执行的,但动态的类名称、函数名称或常量名称则不是。

在一个命名空间中,当 PHP 遇到一个非限定的类、函数或常量名称时,它使用不同的优先策略来解析该名称

。类名称总是解析到当前命名空间中的名称。

因此在访问系统内部或不包含在命名空间中的类名称时,必须使用完全限定名称

 

对象是一个由信息及对信息进行处理的描述所组成的整体,是对现实世界的抽象。

对象的主要三个特性:

对象的行为:可以对 对象施加那些操作,开灯,关灯就是行为。

对象的形态:当施加那些方法是对象如何响应,颜色,尺寸,外型。

对象的表示:对象的表示就相当于身份证,具体区分在相同的行为与状态下有什么不同。

 

面向对象内容

? 定义了一件事物的抽象特点。类的定义包含了数据的形式以及对数据的操作。

对象 ? 是类的实例。new

成员变量 ? 定义在类内部的变量。该变量的值对外是不可见的,但是可以通过成员函数访问,

在类被实例化为对象后,该变量即可称为对象的属性。

成员函数 ? 定义在类的内部,可用于访问对象的数据。

继承 ? 继承性是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。

在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,

把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容。

 

父类 ? 一个类被其他类继承,可将该类称为父类,或基类,或超类。

子类 ? 一个类继承其他类称为子类,也可称为派生类。

多态 ? 多态性是指相同的操作或函数、过程可作用于多种类型的对象上并获得不同的结果。

不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性。

重载 ? 简单说,就是函数或者方法有同样的名称,但是参数列表不相同的情形,这样的同名不同参数的函数或者方法之间,互相称之为重载函数或者方法。

抽象性 ? 抽象性是指将具有一致的数据结构(属性)和行为(操作)的对象抽象成类。一个类就是这样一种抽象,它反映了与应用有关的重要性质,

而忽略其他一些无关内容。任何类的划分都是主观的,但必须与具体的应用有关。

 

封装 ? 封装是指将现实世界中存在的某个客体的属性与行为绑定在一起,并放置在一个逻辑单元内。

构造函数 ? 主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。

 

析构函数 ? 析构函数(destructor) 与构造函数相反,当对象结束其生命周期时(例如对象所在的函数已调用完毕),系统自动执行析构函数。

析构函数往往用来做"清理善后" 的工作(例如在建立对象时用new开辟了一片内存空间,

应在退出前在析构函数中用delete释放)。

 

 

类的变量使用 var 来声明, 变量也可以初始化值。

 

函数定义类似 PHP 函数的定义,但函数只能通过该类及其实例化的对象访问。

PHP_EOL 为换行符

 

 

function __construct( $par1, $par2 ) {

   $this->url = $par1;

   $this->title = $par2;

 

构造初始化函数构造函数 ,构造函数是一种特殊的方法。主要用来在创建对象时初始化对象,

即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。

function __destruct()析构函数

 

PHP 使用关键字 extends 来继承一个类,PHP 不支持多继承

override),也称为方法的重写

 

PHP 对属性或方法的访问控制,是通过在前面添加关键字 public(公有),protected(受保护)或 private(私有)来实现的。

public(公有):公有的类成员可以在任何地方被访问。

protected(受保护):受保护的类成员则可以被其自身以及其子类和父类访问。

private(私有):私有的类成员则只能被其定义所在的类访问。

 

类属性必须定义为公有,受保护,私有之一。如果用 var 定义,则被视为公有

 

  // 声明一个公有的构造函数

    public function __construct() { }

 

    // 声明一个公有的方法

    public function MyPublic() { }

 

    // 声明一个受保护的方法

    protected function MyProtected() { }

 

    // 声明一个私有的方法

    private function MyPrivate() { }

 

 

接口是通过 interface 关键字来定义的,就像定义一个标准的类一样,但其中定义所有的方法都是空的。

接口中定义的所有方法都必须是公有,这是接口的特性。

要实现一个接口,使用 implements 操作符。类中必须实现接口中定义的所有方法

,否则会报一个致命错误。类可以实现多个接口,用逗号来分隔多个接口的名称。

 

 

声明类属性或方法为 static(静态),就可以不实例化类而直接访问。

 

静态属性不能通过一个类已实例化的对象来访问(但静态方法可以)。

由于静态方法不需要通过对象即可调用,所以伪变量 $this 在静态方法中不可用。

静态属性不可以由对象通过 -> 操作符来访问。

 

如果父类中的方法被声明为 final,则子类无法覆盖该方法

 

对类的静态属性和方法的直接引用,这种情况可以不需要实例化类而直接使用“::”调用,

“->”则必须先实例化,方可引用,

声明一个类:class myclass

类创建后,我们可以使用 new 运算符来实例化该类的对象 new Class

 

类是指:描述一种事物的定义,是个抽象的概念,是一些失误具有相同特征的集合;

实例指:该种事物的一个具体的个体,是具体的东西。

比如:“动物”是一个类,熊猫和猴子,就是实例

 

把对象看作是一个小盒子 两端带有输入输出输入的机制叫做方法: method

方法具有属性property

 

 

PHP 中的 $_GET 和 $_POST 变量用于检索表单中的信息,比如用户输入。

 

PHP 下拉菜单单选

以下实例我们设置了下拉菜单三个选项,表单使用 GET 方式获取数据,action 属性值为空表示提交到当前脚本,

我们可以通过 select 的 name 属性获取下拉菜单的值

 

 

PHP 下拉菜单多选

如果下拉菜单是多选的( multiple="multiple"),我们可以通过将设置 select name="q[]" 以数组的方式获取,以下使用 POST 方式提交

 

PHP 单选按钮表单中 name 属性的值是一致的,value 值是不同的

PHP checkbox 复选框可以选择多个值

 

get方式的安全性较Post方式要差些,包含机密信息的话,建议用Post数据提交方式;

在做数据查询时,建议用Get方式;而在做数据添加、修改或删除时,建议用Post方式;

 

 

 

$_SERVER["PHP_SELF"] 可以通过 htmlspecialchars() 函数来避免被利用。

form 代码如下所示:

<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">

 

 

使用 PHP trim() 函数去除用户输入数据中不必要的字符 (如:空格,tab,换行)。

使用PHP stripslashes()函数去除用户输入数据中的反斜杠 (\)

 

preg_match — 进行正则表达式匹配

 

int preg_match ( string $pattern , string $subject [, array $matches [, int $flags ]] )

 

subject 字符串中搜索与 pattern 给出的正则表达式相匹配的内容。如果提供了 matches ,

则其会被搜索的结果所填充。$matches[0] 将包含与整个模式匹配的文本,$matches[1] 将包含与第一个捕获的括号中的子模式所匹配的文本,以此类推。

 

 

 

 

 

命名空间中的三个名称的术语如下所示:

 

1.非限定名称,或不包含前缀的类名称,例如 $comment = new Comment();。

如果当前命名空间是Blog\Article,Comment将被解析为Blog\Article\Comment。

如果使用Comment的代码不包含在任何命名空间中的代码(全局空间中),则Comment会被解析为Comment。

 

2.限定名称,或包含前缀的名称,例如 $comment = new Article\Comment();。

如果当前的命名空间是Blog,则Comment会被解析为Blog\Article\Comment。

如果使用Comment的代码不包含在任何命名空间中的代码(全局空间中),则Comment会被解析为Comment。

 

3.完全限定名称,或包含了全局前缀操作符的名称,例如 $comment = new \Article\Comment();。

在这种情况下,Comment总是被解析为代码中的文字名(literal name) Article\Comment。

 

其实可以把这三种名称类比为文件名(例如 comment.php)、

相对路径名(例如 ./article/comment.php)、绝对路径名(例如 /blog/article/comment.php),

这样可能会更容易理解。

 

 

 

 

 

6: $orignum = 10;

7: addFive($orignum);

在第七行把变量传递给addFive函数

 

function_exists用来表示检查函数的可用性

span为标记

 

 

foreach把一个元素的值赋给一个给定的变量

 

 

PHP关键字(68个)

    and  or  xor  __FILE__ extends  __LINE__  array()  as  break  case

 class  const  continue  declare  default  die()  do  

echo  else  elseif  empty()  enddeclare  endfor  endforeach  endif

  endswitch  endwhile  eval()  exit()  extends  for  

foreach  function  global  if  include  include_once  isset()  

list()  new  print  require  require_once  return  static

 switch  unset()  use  var  while  __FUNCTION__  __CLASS__  __METHOD__

    final(PHP 5)  php_user_filter(PHP 5)  interface 接口(PHP 5)

 implements(PHP 5)  exception(PHP 5)  public(PHP 5)  private(PHP 5)

 protected(PHP 5)  abstract(PHP 5)  clone(PHP 5)  try(PHP 5)  catch(PHP 5)

 throw(PHP 5)  cfunction(PHP 4 only)  this(PHP 5 only)

 

 

(1).const用于类成员变量的定义,一经定义,不可修改。定义常量

 define不可用于类成员变量的定义,可用于全局常量。

(2).const可在类中使用,define不能。

(3).const不能在条件语句中定义常量。

 

 

 

This 关键字:用于类的内部指代类的本身

$this::常量名

::双冒号 关键字:用于调用常量\静态成员.

 

“&”:引用赋值,意味着两个变量都指向同一个数据。它将使两个变量共享一块内存,

如果这个内存存储的数据变了,那么两个变量的值都会发生变化。

实例:$c = &$a;

      $a = "我天天在慕课网学习PHP!";

 

 

foreach($students as $key =>$v)输出键和值

 

foreach($students as $v)输出值

 

 

更常见的写法是<a href="####"></a>

 

主要的作用是做一个空链接而且点击这个链接不会刷新本页面

 

 

创建一个图像从ImageCreate()函数开始 脚本中所分配的第一种颜色为背景颜色

 

 

ImageEllipse()绘制一个椭圆

ImageArc()绘制一部分椭圆

ImagePolygon()绘制一个多边形

ImageRectangle()绘制一个矩形

ImageLine()绘制一个线条

 

++$x先增加后操作

$x++ 先操作后增加

==操作符测试相等性

=操作符赋值

&& ||或 非  ===等同 左边等于右边并且它们类型相同

常量只能使用常量名 不需要美元符号

优先级高低

+++ ---

、,*,%

+ -

<,,<=,=>,>

==,===,!=

&&

||

=,+=,=,/=,*=,%=,=

 

Settype()改变变量的数据类型

Gettype()获取数据类型

 

Switch语句是连续检测很多值,希望找到一个匹配的值。

?运算符这个值源自使用冒号分隔开的两个表达式的一个,如果你只处理两个选择并想用简洁的代码来完成就用?

 

<?php

echo "<table style=\"border: 1px solid #000;\"> \n";

for ($y=1; $y<=12; $y++) {

    echo "<tr> \n";

for ($x=1; $x<=12; $x++) {

     echo "<td style=\"border: 1px solid #000; width: 25px;

          text-align:center;\">";

 echo ($x * $y);

 echo "</td> \n";

    }

echo "</tr> \n";

}

echo "<table>";

?>

一个乘法表格

第二行:我们使用了/这是必要的告诉PHP引擎我们想要使用引号字符。

 

Function语句来定义自己的函数,函数名字跟在function后面,并且有一对括号。

默认情况下,在函数之外定义的变量不能在函数中访问。

Static在函数调用之间保存状态。

 

使用function_exists()函数来检查函数的可用性。Function_exists()需要一个表示函数名的字符串,如果可用找到该函数,他返回true,否则false

 

Array()函数或者数组操作符[]来创建一个数组。

不管是array函数或者数组操作符[],都可以使用数组操作符来添加数组。

$rainbow[] = “violet”;

 

 

Count()和sizeof两个函数都会计算一个数组的元素的个数。返回值。

Each()和list()在遍历一个数组并返回其键和值得应用中。

 

Foreach()这个控制结构也用来遍历一个数组,把一个元素的值赋给一个给定的变量

Reset返回到开始。Rest($character)

 

Array_push()这个函数在一个已有 数组的末尾添加一个或者多个元素。

Array_pop()这个函数删除并返回一个已有数组的最后一个元素。

 

Array_unshift()这个函数在一个已有数组的开头添加一个或者多个元素。

Array_shift()这个函数删除并返回一个已有数组的第一个元素

 

Array_merge()这个函数组合两个或者多个已有的数组

$newArray = array_merge($array1,$array2)

Array_keys()这个函数返回一个数组包含一个给定数组中的所有键名

Array_values()这个函数返回一个数组包含给定数组中所有的值

Shuffle()这个函数把一个给定数组的所有元素随机排列。Shuffle($existingArray);

 

一个对象拥有一个叫做类的结构。类中又包含特征,每个对象使用所有的这些特征,但他们都初始化为不同的值。

 

Public:在任意地方访问

Protected:在类自身或父类中可以访问。

Private:自身访问。

 

一个方法的外观及其行为就像一个正常的函数,只不过方法是定义在一个类的框架中。

->操作符用来在脚本中调用对象方法

特殊的变量$this用来引用当前实例化的对象。任何时候,如果一个对象引用自身,都必须使用$this变量。和->操作符结合起来使用就能够在类自身之中访问其任何属性或方法。

 

转换指示(%)

header(“Content-Type:text/plain”)转为文本

Strstr()获取一个字符串的子串

Strpos()找到一个子字符串的位置

Substtr()提取一个字符串的一部分。

Strtok()分解一个字符串。

 

Trim() ltrim()和strip_tags()整理一个字符串

使用woedwrap()和n12br()换行文本

n12br()函数只是对于要转换的文本中已经存在的换行符效果好

<?php

$string = "one line\n";

$string .= "another line\n";

$string .= "a third for luck/n";

echo n12br($string);

?>

 

使用explode()把字符串分解到数组在

使用time()函数获取日期

Getdate()转换一个时间戳

Date转换一个时间戳

Mktime()创建时间戳

Checkdate()测试日期

 

 

使用file_exists()检查文件的存在性

Is_file测试实体为文件还是目录。Is_file()函数会返回一个布尔型。

Is_dir()测试是否为一个目录

 

Touch:文件不存在 可以使用touch()函数创建。给定一个文件路径,它使用该名字创建一个空文件。

 

使用unlike()函数删除一个已有文件。像 touch、

打开文件的更好的方法是通过 fopen() 函数

fopen() 的第一个参数包含被打开的文件名,第二个参数规定打开文件的模式。

fread() 函数读取打开的文件。

fread() 的第一个参数包含待读取文件的文件名,第二个参数规定待读取的最大字节数。

feof() 函数检查是否已到达 "end-of-file" (EOF)。

feof() 对于遍历未知长度的数据很有用。

fgetc() 函数用于从文件中读取单个字符。

fgets() 函数用于从文件读取单行。

 

 

Fgets()和feof()从一个文件读取行

Fseek()来移动文件

使用fgetc()从文本读取字符

File_get_contents()读取文件内容

Fwrite()或fputs()写入文件

使用file_put_contents()写文件内容:

使用参数:

Data--包含了要写的数据的一个字符串或数组

Flags——一个或者多个FILE_USE_INCLUDE_PATH、FILR_APPEND和LOCK_EX。

Content————stream_context_create()创建一个环境资源,如果不需要使用null。

Flock(0锁定文件   参数:

LOCK_SH:整数 1,锁定:共享 能读不能写

LOCK_EX:整数 2,锁定:独占 不能读 写

LOCK_UN:整数 3,锁定:释放 释放共享锁定或者独占锁定。

 

 

PHP Date() 函数把时间戳格式化为更易读的日期和时间。

date(format,timestamp)

<?php

date_default_timezone_set("Asia/Shanghai");

echo "当前时间是 " . date("h:i:sa");

?>

?a - 小写的午前和午后(am 或 pm)

 

date() 函数的格式参数是必需的,它们规定如何格式化日期或时间。

 

?require 会生成致命错误(E_COMPILE_ERROR)并停止脚本

?include 只生成警告(E_WARNING),并且脚本会继续

因此,如果您希望继续执行,并向用户输出结果,即使包含文件已丢失,那么请使用 include。否则,在框架、CMS 或者复杂的 PHP 应用程序编程中,请始终使用 require 向执行流引用关键文件。这有助于提高应用程序的安全性和完整性,在某个关键文件意外丢失的情况下。

 

cookie 常用于识别用户。cookie 是服务器留在用户计算机中的小文件。每当相同的计算机通过浏览器请求页面时,它同时会发送 cookie。通过 PHP,您能够创建并取回 cookie 的值。

setcookie() 函数用于设置 cookie

注释:setcookie() 函数必须位于 <html> 标签之前。

Session (变量)的工作机制是:为每个访问者创建一个唯一的 id (UID),并基于这个 UID 来存储变量。UID 存储在 cookie 中,亦或通过 URL 进行传导。

在您把用户信息存储到 PHP session 中之前,首先必须启动会话

session_start() 函数必须位于 <html> 标签之前:

终结 Session

如果您希望删除某些 session 数据,可以使用 unset() 或 session_destroy() 函数。

unset() 函数用于释放指定的 session 变量:

<?php

unset($_SESSION['views']);

?>

您也可以通过 session_destroy() 函数彻底终结 session:

isset函数是检测变量是否设置。如果已经使用 unset() 释放了一个变量之后,它将不再是 isset()。若使用 isset() 测试一个被设置成 NULL 的变量,将返回 FALSE。

同时检查多个变量时,每个单项都符合上一条要求时才返回 TRUE,否则结果为 FALSE

 

 

 

成员方法

之前我们说了php类的定义与实例化方法,举了个例子,创建了一个人的类。

但是人不单单有属性,还有行为方式,比如人可以跑步,可以跳舞,可以唱歌,可以吃饭等等。那么,我们改如何去实现这些行为呢?接下来就要用到我们的成员方法去实现了。

还是上节课的例子,定义一个人的类,创建一个跑的成员方法

class Preson{

?????public $name;(人的属性:名字 性别 年龄)

?????public $age;

?????public $gender;

?????public function Run(){???//人的行为叫做成员方法

?echo "人在塔在";

}

}

//先实例化一个类才能调用

$Preson1 = new Preson();

$Preson1->name = "德玛西亚";

//调用成员方法 跑!

$Preson1->Run();

这个例子就是一个简单的成员方法的创建个调用。

成员变量

类中的变量,也叫成员变量,我们之前的例子就已经使用过,这里向大家提出来说明一下。

1

2

3

4 class Preson{

???public $name;????????????? //定义成员变量

???public $age;

}

上面例子中的$name就是成员变量。

类常量

类中有变量,那么相对的也就是会有常量。常量的意思就是不会改变的量,是一个恒值。

定义常量,我们用const。

1

2

<?php

class? character{

public $name;???????????????????? //声明一个变量

const SKILLS = '哈撒尅';? //声明一个常量

}

$character1 = new character();

$character1->name = "亚索";

echo '我要玩' . $character1->name . '<br/>' . '技能是' . character::(调用)SKILLS;

上面的例子我们说明了常量的定义方法和访问方式。

以上就是php面向对象:成员方法、成员变量、类的常量的详细内容

PHP 中的 include、require 函数可以实现

 

include (或 require)语句会获取指定文件中存在的所有文本/代码/标记,并复制到使用 include 语句的文件中。

 

包含文件很有用,如果您需要在网站的多张页面上引用相同的 PHP、HTML 或文本的话。

PHP include 和 require 语句

 

通过 include 或 require 语句,可以将 PHP 文件的内容插入另一个 PHP 文件(在服务器执行它之前)。

 

include 和 require 语句是相同的,除了错误处理方面:

    require 会生成致命错误(E_COMPILE_ERROR)并停止脚本

    include 只生成警告(E_WARNING),并且脚本会继续

 

因此,如果您希望继续执行,并向用户输出结果,即使包含文件已丢失,那么请使用 include。否则,在框架、CMS 或者复杂的 PHP 应用程序编程中,请始终使用 require 向执行流引用关键文件。这有助于提高应用程序的安全性和完整性,在某个关键文件意外丢失的情况下。

 

isset和empty的区别

 

两者都是测试变量用的,但是isset是测试变量是否被赋值,而empty是测试一个已经被赋值的变量是否为空。如果一个变量没被赋值就引用在php里是被允许的,但会有notice提示。如果一个变量被赋空值,$foo=”"或者$foo=0或者 $foo=false,那么empty($foo)返回真,isset($foo)也返回真,就是说赋空值不会注销一个变量。要注销一个变量,可以用 unset($foo)或者$foo=NULL。

 

 

 

2、常量和变量

2.常量的作用域是全局的,可以再脚本的任何地方声明和访问常量。

2.常量前面没有$,且不能通过赋值语句定义常量。

2.常量一旦被定义,不能被重新定义或取消定义,直到脚本运行结束自动释放。

2.常量的值只能是标量(boolean,integer,float,string中的一种类型)

3、系统的预定义常量

 

 

?正则表达式是php中一个非常重要的知识点,通常用来查找和替换字符串,最常用的就是验证用户输入的信息格式是否正确,如邮件格式、电话格式等等。还有比如采集器之类的软件中,正则也是必用不可!

? 现在开始来学习正则表达式的基本语法:

1.“/”是定界符,“/”定界符之间的部分就是将要在目标对象中进行匹配的模式。同时为了正则更加灵活,引入了元字符,即“+”, “*”,以及 “?”。

1)“+”元字符规定其前导字符必须在目标对象中连续出现一次或多次

比如:/php+/,能够与“phpp”匹配,即字母ph后面连续出现一个或多个字母p的字符串相匹配。

2)“*”元字符规定其前导字符必须在目标对象中出现零次或连续多次

比如:/php*/能够与“phpddt”相匹配,即ph后面可以有0个或多个p

3)“?”元字符规定其前导对象必须在目标对象中连续出现零次或一次。

比如:/php?/能够“pher”匹配,即phh后面可以有0个或者1个p

其他重要的元字符:

?\s:用于匹配单个空格符,包括tab键和换行符;

?\S:用于匹配除单个空格符之外的所有字符;

?\d:用于匹配从0到9的数字;

?\w:用于匹配字母,数字或下划线字符;

?\W:用于匹配所有与\w不匹配的字符;

?. :用于匹配除换行符之外的所有字符。

示例:/\s+/用于匹配目标对象中的一个或多个空格字符

2.定位符用于规定匹配模式在目标对象中的出现位置。常用的有“^”, “$”, “\b” 以及 “\B”

(1)“^”定位符规定匹配模式必须出现在目标字符串的开头

(2)“$”定位符规定匹配模式必须出现在目标对象的结尾

(3)\b定位符规定匹配模式必须出现在目标字符串的开头或结尾的两个边界之一

(4)“\B”定位符则规定匹配对象必须位于目标字符串的开头和结尾两个边界之内

3.php的正则匹配模式非常灵活,可以指定某一范围?

例如:

/[A-Z]/

上述正则表达式将会与从A到Z范围内任何一个大写字母相匹配。

/[a-z]/

上述正则表达式将会与从a到z范围内任何一个小写字母相匹配。

/[0-9]/

上述正则表达式将会与从0到9范围内任何一个数字相匹配。

/([a-z][A-Z][0-9])+/

上述正则表达式将会与任何由字母和数字组成的字符串

4.可以同时与多种模式选择匹配

/phpddt.com|phpddt|100/可以与“phpddt.com” “phpddt” “100”相匹配

5.否定符 “[^]”规定目标对象中不能存在模式中所规定的字符串

例如:[^phpddt]匹配除了phpddt字符外的所有东西

下面来讲讲正则表达式常用函数吧!(非常重要)

 

 

怎样进行邮箱匹配,url匹配,手机匹配

使用preg_match函数进行匹配,以下内容从TP中复制而来。?

邮箱验证?

pattern=′/\w+([?+.]\w+)?@\w+([?.]\w+)?\.\w+([?.]\w+)?/’;?

url匹配?

pattern='/^http(s?):\/\/(?:[A-za-z0-9-]+\.)+[A-za-z]{2,4}(:\d+)?(?:[\/\?#][\/=\?%\-&~`@[\]\':+!\.#\w]*)?/’;?

手机验证?

pattern=′/1[3458]\d10/’;