php代码讲解的主要部分,php详解及基本知识

对于初次学习php的来说,需要在自己电脑上搭建php环境。省去空间和上传的麻烦!

这里推荐一个软件:WampServer是一款由法国人开发的Apache Web服务器、PHP解释器以及MySQL数据库的整合软件包。免去了开发人员将时间花费在繁琐的配置环境过程,从而腾出更多精力去做开发。

这篇文章讲的安装很好了,wampserver安装详解

1.php入门原理

PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言。语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。

(1)php运行的原理:

1863aa4b52ed0f66dfc4b7c83204667b.png

最终解析成:

0aa52f25ac66be0a205ebe07543c1cb5.png

访问php页面是看不到PHP代码的;

(2)两种PHP运行方式

(1) 通过虚拟路径访问,也就是URL地址:单线程;

(2) CLI运行方式:真正的多线程

a3a95d5d12254b4d2ab09fdd93696b65.png

2.php语法

(1).php指令分隔符“分号”

php在程序中使用功能执行语句,例如变量的声明、内容的输出、函数的调用等,是用来在程序中执行某些特定功能的语句,这种语句也可以成为指令,php需要在每个指令后用分号结束。

记得刚学着做php原生态的时候,找个bug半天就是没有找到,后面发现是有个语句分号没写,以前用惯了javascript的语法,有时候习惯不加分号。

ps:养成良好的代码格式规范还是有必要的。

(2)代码注释

php注释的三种形式:

以“/”和“/”闭合多行注释符,

“//”和”#”开始的单行注释符。

(3)变量

1.php变量的定义是使用$。

1) 以$开头,$后面不能直接跟数字,后面跟字母、数字、下划线;

2) 变量名称区分大小写,PHP关键词不区分大小写;

3)第一次赋值,就创建了变量。必须使用"$"后跟变量名表示。再次给该变量赋值会覆盖之前的变量。

2.变量的类型

4种标量类型:boolean(布尔型)、integer(整型)、float(浮点型)、string(字符串)

2种复合类型:array(数组)、object(对象)

2种特殊类型:resource(资源)、NULL

如果想看某个表达式的值和类型,可以使用函数var_dump()。

3.变量赋值

1)赋值传值:

$h = 120;

$q = $h; //将$h的值拷贝给$q

$h = 135;

echo $h; //输出135

2)引用传值:

$h = 155;

$q = &$h; //引用传值,表示$h的地址传给$q

$q = 195;

echo $h; //输出195

3)可变变量

$a1 = array('username' => '邓海涛', 'passwd'=>'123456', 'tel'=>'15982369', 'email'=>'dxp@163.com');

foreach ($a1 as $key122 => $value134) {

${$key122} = $value134;

}

echo $email;

echo $tel;

4.变量检测

1)is_array:是否是数组;

2)is_bool :是否是布尔型;

3)is_float :是否是浮点型;

4)is_int :是否是整数;

5)is_null :是否为 NULL;

6)is_numeric :是否为数字或数字字符串;

7)is_object :是否是一个对象;

8)is_resource :是否为资源类型;

9)is_string :是否是字符串;

(4)数组(arry)

使用print_r()函数查看数组中的全部内容。

数组分索引数组和关联数组,用array定义一个数组,数组的元素可以是任意类型的值;如果数组的元素还是数组,那么该变量就是多维数组;

//PHP数组的定义

$array1 = array();

// $array1 = []; //用于7.0版本以后

//索引数组

$student = array('梁刚','郑鸿斌','易航','谭俊');//索引从0开始

$num = array(1, 2, 3, 4, 5);

//计算数组的元素个数:count();

$an = count($student);

echo $an;

//关联数组

$student1 = array('name'=>'赵梓茗', 'age'=>18, 'height'=>190.02);

//多维数组

$students = array(

0=>array('name'=>array('realname'=>'邓海涛', 'age'=>18, 'height'=>190),

1=>array('name'=>'邓海涛', 'age'=>18, 'height'=>190),

2=>array('name'=>'邓海涛', 'age'=>18, 'height'=>190),

);

var_dump($students);

3.php语句操作详解

1.php的输出方式

1)Echo:输出字符串;

2)print_r() :打印变量的易于理解的信息;

3)var_dump():打印易于理解的完整数据信息及结构,包括字符串长度;

4)exit():打印并停止执行PHP脚本;

die():同exit;

2.单引号和双引号

1)双引号里面的变量会解析,单引号不会解析;

2)双引号里面的变量如果还要内容,最好用{}括起来;

3)推荐使用单引号:运行效率稍微高点;

4)如果输出单引号或者双引号,需要转义;

a86078091bd09e86ff5b6190c03002fc.png

3.SESSION和COOKIE

1)SESSION:为每个访问者创建一个唯一 id ,并基于这个ID 来存储信息,Session_id()返回当前会话id;

2)通过session_start() 启动session会话(必须位于 标签之前);

3)$_SESSION[‘username’] = ’用户账号’; 用于设置session值;

4)$_SESSION[‘username’] 用于获取session值;

5)unset() 用于释放指定的session变量;

6)session_destroy() 将重置所有session数据;

7)cookie 信息存储在用户电脑中,每当用户访问网页时同时会发送cookie ;

setcookie(name, value, expire); 用户设置cookie内容;

$_COOKIE[“user”]用于获取cookie的值;

setcookie(“user”, “”, time()-3600);用于删除cookie内容 ;

4.表单处理

1)Action指定后台处理的页面,method指定数据传输方式:

cc7be1c9da013e67895d8b22f56d60c5.png

2)PHP如何接收POST过来的数据:

获取指定输入框的数据:5a71b1908b5efc3a24f5eeffc1d612d2.png

全部数据存放在一个数据里面的:

e0d6b47cc222571232f843bfe31d61b5.png

3)PHP接收GET过来的数据方式:$_GET[‘username’];

5.流程控制

数组一般使用foreach遍历:

$arrar1 = array(1, 56, -89, 120, 568, 1028, 56, 3);

$max = $arrar1[0];

foreach ($arrar1 as $key => $value) {

if($max < $value){

$max = $value;

}

}

echo $max;

6.函数

1)函数是可重复使用的代码块,使程序结构清晰,易于维护。

2)函数内部使用外部的变量使用global;

3)函数分为自定义函数和内置函数;

function fn(参数1,参数2,参数3…) {

执行的代码;

Return 返回的数据,可以是数组、对象、字符串等

}

7.文件读写

1)打开文件:fh=fopen(filename, “打开模式”);打开模式描述如下表:

a7f948562d79395c1c0aa253ce494972.png

2)读取打开的文件指定长度的内容:fread(fh,filesize(filename));

3)读取文件单行内容:Fgets($fh);

一行一行读取文件所有内容:

while(!feof($fh)){

$str1 = fgets($fh);

}

4)文件写入:

fwrite($fh, “访客1\tip:112.105.213.20\t时间:2017-03-06 16:42:21 " . PHP_EOL);

5)关闭打开的文件:fclose($fh);

6)一次性获取文件内容和写入文件的方式:

//读取远程文件内容

$str = file_get_contents('http://localhost/indexmk/preview.do');

var_dump($str);

//写入文件

file_put_contents('a.html', $str);

8.文件上传

1)表单method必需为POST;

2)指定表单enctype属性值为”multipart/form-data” :

enctype:encodetype,即编码类型;

multipart/form-data:表单数据由多部分构成,如文本、二进制数据文件等;

3)指定input标签的type为file:

4)使用$_FILES[‘uploadfile’]获取上传文件的相关信息;

5)move_uploaded_file() :将上传的文件从临时空间移动到你想保存的目录:

move_uploaded_file($_FILES["uploadfile"]["tmp_name"], "upload/" . $_FILES["file"]["name"]);

4.面向对象编程

1)面向对象编程简称OOP( Object-oriented programming );

2)类是具有相同属性和服务的一组对象的集合;

3)对象是类的实例;

4)如何定义一个类:

class Person

{

//类的属性

public $name;

//构造函数,对类和属性进行初始化

function __construct($name1, $age1){

$this->name = $name1;

}

}

5)实例化一个对象

$person1 = new Person('李鑫', 170);

//调用对象的属性

echo $person1->name;

6)成员变量

类中的变量,也称为属性。成员变量用来保存信息数据,或与成员方法进行交互来实现某项功能。

定义成员变量的格式为:关键字 成员变量名。

访问成员变量和访问成员方法是一样的。只要把成员方法换成成员变量即可,格式为:

对象名 -> 成员变量

7)成员方法

类中的函数被称为成员方法。

函数和成员方法唯一的区别就是,函数实现的是某个独立的功能,而成员方法是实现类中的一个行为,是类的一部分。

class Student{

//学生的名字

var $name;

function setName($name){

//把局部变量给当前对象的全局变量赋值

$this->name = $name;

}

function getName(){

//返回当前对象全局变量$name

return $this->name;

}

}

8)PHP 构造函数

构造函数 ,是一种特殊的方法。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值;

function __construct( $name, $age )

{

$this->name = $name;

$this->age= $age;

}

9)析构函数

析构方法的作用和构造方法正好相反,对象生命周期结束时调用;

function __destruct( $name, $age )

{

echo $this->name;

echo $this->age;

}

10)类的继承

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

class ChildClass extends ParentClass {

// 代码部分

}

11)访问控制

–public(公共成员)

可以公开的、没有必要隐藏的数据信息。可以在程序中的任何位置(类内、类外)被其他的类和对象调用。子类可以继承和使用父类中所有的公共成员;

–private(私有成员)

被private关键字修饰的变量和方法,只能在所属类的内部被调用和修改,不可以在类外被访问。在子类中也不可以;

–protected(保护成员)

被protected修饰的类成员,可以在本类和子类中被调用,其他地方则不可以被调用;

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

13)Final 关键字

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

b)如果一个类被声明为 final,则不能被继承;

14)调用父类构造方法: parent::__construct();

15)自动加载类 __autoload()函数:

function __autoload($classname) {

require_once $classname . '.php';

}

// MyClass1类不存在时,自动调用__autoload()函数,传入参数”MyClass1”

$obj = new MyClass1();

总结

php原生态的基础编程知识学习到了这,下次介绍ci框架下的php编程,基于mvc编程模式,可以更加方便更加快速的开发代码。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值