php详解及基本知识

来源:互联网 发布:mac aecc汉化包 编辑:程序博客网 时间:2024/05/22 17:26

对于初次学习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运行的原理:

这里写图片描述
最终解析成:
这里写图片描述
访问php页面是看不到PHP代码的;

(2)两种PHP运行方式

(1) 通过虚拟路径访问,也就是URL地址:单线程;
(2) CLI运行方式:真正的多线程
这里写图片描述

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; //输出1953)可变变量$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)如果输出单引号或者双引号,需要转义;

这里写图片描述

3.SESSION和COOKIE

1)SESSION:为每个访问者创建一个唯一 id ,并基于这个ID 来存储信息,Session_id()返回当前会话id;2)通过session_start() 启动session会话(必须位于 <html> 标签之前); 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指定数据传输方式:
这里写图片描述
2)PHP如何接收POST过来的数据:
获取指定输入框的数据:这里写图片描述

全部数据存放在一个数据里面的:这里写图片描述

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, “打开模式”);打开模式描述如下表:
这里写图片描述

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:

<input type=“file” name=“uploadfile” id=“uploadfile” />

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编程模式,可以更加方便更加快速的开发代码。

原创粉丝点击