自学php笔记

一、PHP入门

1、php是一种动态网站开发的脚本语言,动态语言特点是交互性,会有数据的传递,而php作为中间人需要进行数据的传递,传递的前提就是php能自己存储数据(临时存储);
2、变量:是用来储存数据的;存在名字,通过名字来访问:数据;是可以改变的:数据;
3、定义:在系统中增加对应的变量名字(内存);
4、赋值:可以将数据赋值给变量名
解决中文乱码:hearder(‘Content-type:text/html;charset=utf-8’);
5、如何定义一个变量: 
         1、以$开头 $变量名;
          2、var_dump(变量)  页面打印
6、定义一个常量 : const  常量名(大写,不需要$);
7、数据类型:
int(整数),
float(小数),
string; 写法:可以用引号,定界符(<<<AAA(界限名)    内容     AAA(界限名,要顶格写));如果用双引号定义,其中输出变量{变量名}
 如果用单引号定义,其中要输出变量,必须拼接;
boolean
null,
object,
array,
resource(资源);
8、会被转换成false的情况:
      1、'';
      2、0;
      3、[];
      4、null
      5、空对象
9、字符串的拼接:'.'
10、数据转换:
       1、settype(变量名,'转换数据类型名')  改变变量本身
        2、$i=(转换数据类型名)  变量名  生产一个新的变量
11、运算符:+-*/% += -= *=  /= && ||  !
        三元运算符:条件?对的值:错的值
         i++  先做别人的事,自己在加1

二、PHP函数和内置函数;

  1、自定义函数:函数的三要素:函数名,参数,返回值;
           1、引用地址参数的传递&参数;在传参的时候把实际参数本身传入到函数中。
            2、带默认参数传递:可以在定义的时候给形参赋默认值,统一放在右边
            3、可变数量参数的传递:   形参:…$数组名;(支持php5.6以后的版本) 
            5.6以前版本:形参不写,在功能体中使用$数组名=func_get_args();
            4、全局变量:在函数内外都可以使用
                   1)、 在函数中使用全局变量:先GLOBAL+全局变量名声明  后使用;
                    2)、$GLOBALS[全局变量名]访问相对应的全局变量。
            5、局部变量:只能在函数作用域内才可以使用;
    2、变量内置函数:
          1、转换数据类型:
              settype(变量,数据类型)     返回值:true或false;
           2、变量是否设置:
                isset(变量名)                 返回值:true 或 false;
     3、输出函数:echo与print的区别:
           1、不同:echo没有返回值,print有返回值
           2、echo与print不可以打印数组和对象;
           3、var_dump和print_r
                1)、print_r只会显示值,var_dump值和数据类型;
                2)、共同点:都可以打印数组、对象、其他数据类型;
       4、时间函数:
           1、time()   获得当前时间的时间戳
           2、date('Y/m/d H:i:s',time())
                注:1、date_default_timezone_set('PRC')    设置中国所在时区;                   
                       2、修改服务器的配置文件:php.ini-->timeZone--->去掉;---->设置时区(PRC);
           3、getdate(时间戳)获取时间数组;
           4、strtotime();  字符串转换为时间戳
           5、mktime:返回时间戳;

三、PHP数组

1、一维数组定义:
     1、下标数组:数组名=[值1,值2,值3,值4…..];   下标是数字
      2、关联数组:下标不为数字, 数组名=[键1=>值1,键2=>值2…..];
2、下标一些特殊情况;
      1、十进制的整型字符串为下标---->转为整型;
      2、true或false----->转为整型(1,0);
      3、浮点型数---->转为整型;
      4、null---->转为''(空字符串);
      5、键名相同的情况下,会被覆盖;
      6、键名不写的情况下,默认最大的整型+1;
3、数组的遍历:
      1、foreach($arr as $key=>$value){}
4、数组的添加:array_push($arr,添加的值);
5、数组键值互换:array_flip($arr);
6、产生数组:range(开始位置,结束位置,间隔);
7、计算数组长度:count()=sizeof();
8、查找:array_search(要查找的值,数组);
9、对数字进行增删改查:
      array_splice(数组,起始位置,删除几个,替换几个);
四、PHP面向对象
   1、面向对象OOP的三大特性:
            封装(不关注具体的实现,只关注整体,隐秘性)、
            继承
            多态;
   2、类是一个模板,抽象的;对象是一个具体的实物,
   3、PHP类的定义:class  类名{属性、构造函数、方法、析构函数};
   4、属性的声明:   访问修饰符:public  变量名;
   5、访问修饰符:
              public(公共的,内外都可以访问)、
              private(私有属性,只可以在类的内部访问);
              protected(受保护的);
   6、构造函数:public function __construct(){}   在实例化(new)的时候自动调用、属性的赋值。
   7、析构函数:public function __destruct(){}    在关闭资源或者销毁变量时使用。
   8、类的内部访问属性:$this->属性名;类的外部访问属性:对象名->属性
   9、继承的声明:extends声明;
   10、继承的格式:引用父类资源   class subClass extend superClass{}; 
                       其中 subClass为子类名称,superClass为父类名称;
    11、父类的私有属性无法被继承;
    12、父类保护属性只能在父类内部和子类内部使用;
    13、多态:重写父类的方法,子类调用方法时,重写父类方法;
    14、final  class 类名: 无法被继承;
    15、abstract :抽象类:
              语法:abstract class 类名{}
    16、有抽象方法的类,一定是抽象类,
    17、抽象方法没有具体的实现,抽象方法一定要被子类实现。
    18、设计模式(单例): 某个类只能被实例化一次
           1、将构造函数私有化;
           2、定义一个静态方法
           3、定义一个静态属性
           4、判断静态属性是否已经赋值;
    19、静态变量:声明:static       只能被初始化一次; 

五、PHP文件处理

 1、文件操作
     1、打开文件:fopen(参数1,参数2)
           参数:参数1:文件路径
                     参数2:打开方式:a+、r+、w+
                      会自动创建文件的打开方式 :w+(会覆盖原文件) ,a+;
                      a+与r+的区别:a+是从尾部添加,r+从头部覆盖;
  2、文件的写入:fwrite(资源路径,“写入内容”);
  3、文件的读取:fgets(资源类型)   每次读取一行;
  4、判断文件是否到达末尾:feof    到达true;未到达false;
  5、写入数组到文件
      1、先定义一个数组;
      2、将数组转换成JSON字符串 :json_encode() ;
  6、文件上传
      1、打开对应版本PHP的配置文件PHP.ini->upload,确保file_uploads=ON打开;
      2、编写一个前端页面
            1、<from action="提交路径" method="提交方式" enctype=“multipart/form-data”;
             2、ipnput  type=“file”  name=“提交的名字”;
             3、按钮:input type=“sumbit”;
      3、action.php
           1、接收到文件 $_FILES['提交的名字'];
           2、根据接收的结果的数组,编辑业务逻辑;
           3、move_uploaded_file  去把临时文件 移动到工程目录下(iconv 转码); 
           4、保存路径;

六、PHP网页基础

   1、PHP工作原理
   2、网络的传输格式:get、post
       1、get 直接在url上传递数据,不安全
        2、post相对安全,信息量大;
        3、后端接收数据
              1、get:$_GET['提交的名字']
              2、post:$_POST['提交的名字'];
              3、通用接收:$_REQUEST['提交的名字'];
       4、url:http://域名(IP地址):post/文件名?key1=val1&key2=val2

七、Cookie与Session

       1、cookie与session都是存储数据的缓存
       2、cookie存储在客户端,session存储在服务端;
       3、设置cookie
             setcookie(key,val,过期时间,地址)
        4、cookie存储数组:serialize(数组名);将数组序列化为字符串
              cookie取数组      unserialize($_COOKIE[KEY])  ;  将字符串反序列化;
        5、session工作原理:当session_star()代码执行后,服务端生成一个临时的文件,给客户端发送一个PHESESSIONID,PHESESSIONID与临时文件名相

八、AJAX

         1、ajax:是一个网络请求,http协议,一个短连接;
          2、ajax与form表单的不同
                1、form表单需要跳转页面
                2、ajax不需要跳转页面
       3、原生ajax是利用XMLHttpRequest对象实现的,
            XMLHttpRequest.open("提交方式","url",true);
            XMLHttpRequest.send()

         4、jq 与ajax请求
              语法:$.ajax({
                       type:""     请求类型;
                       url:""        请求路径;
                       dataType:""        预期服务器返回的数据类型;
                       success:function(){}    成功之后执行的回调函数
                       error:function(){}    失败之后执行的回调函数
                  })
发布了6 篇原创文章 · 获赞 1 · 访问量 1203
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章