PHP基础笔记【1】

Wesley13
• 阅读 496

一、php基础

1.php是啥?
    php是一种创建动态交互性站点的服务器端脚本语言
    超文本预处理器,在服务器上执行
2.运行环境
    1.计算机系统 2.web服务器 3.数据库 4.脚本处理器
       linux  apache  mysql  php
3.功能
            数据的采集、数据的处理、数据的输出
     3.1数据
         1.变量、常量 存数据 【标识符是变量的名称(函数和类的名称也是标识符)】
            1.变量的创建和声明,**PHP标识符区分大小写**
            2.变量的作用域
            3.global、static 关键字(function()中)
            4.超全局变量  http://www.cnblogs.com/wangxin-king/p/5669336.html
                     $_request $_FILES $_POST $_GET $_OCCKIE $_SESSION   
                     $_SERVER  $_GLOBALS
                              
               1.$_SERVER 包含头信息header、路径path、及脚本语言
               2.$_GET与$_POST的区别
                   1. get设计是向服务器取数据,至于可以传数据的设计是为了高数服务器要那些数据 在http头部传输
                       post设计是向服务器传数据 在http请求中传输
               3. $_REQUEST 可以接受get和post的数据,但是比较慢
               4. $_SESSION 和 $_COOKIE     
                        使用session前一定要session_start()启动session
                        储存session:$_SESSION["name"]="King";//数组操作
                        销毁session:unset($_SESSION["name"]);//销毁一个
                        session_destroy()和unset($_SESSION);//销毁所有的session
                        浏览器cookie的操作
                        设置cookie:setcookie(name, value, expire, path, domain); 
                        获取cookie:$_COOKIE["user"]; 
                        删除cookie:setcookie("user", "", time()-3600);//设置过期时间
                                1.将setcookie中的第二个参数设置为空,
                                2.将第三个参数的失效时间设置为小于系统当前时间即可
               5.
                        $_FILES['myFile']['name']   客户端文件的原名称。 
                        $_FILES['myFile']['type']    文件的 MIME 类型,需要浏览器提供该信息的支持,例如"image/gif"。 
                        $_FILES['myFile']['size']     已上传文件的大小,单位为字节。 
                        $_FILES['myFile']['tmp_name'] 文件被上传后在服务端储存的临时文件名,一般是系统默认。可以在php.ini的
                                                    upload_tmp_dir 指定,但用 putenv() 函数设置是不起作用的。 
                        $_FILES['myFile']['error']    和该文件上传相关的错误代码。


      3.2.常量的声明
            define(name,value,case_insensitive) 
           1.创建常量:可以在一个文件中创建多个常量
                  使用常量时引入这个文件就可使用了,但是要用“.”拼接。例如:"xxx".APPID."xxx"; 
           2.魔术变量(自带常量)
              PHP魔术变量(8个)
                   __LINE__        文件中的当前行号。
                   __FILE__        ** 文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名**。
                   __DIR__         ** 文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。**
                   __FUNCTION__   常量返回该函数被定义时的名字
                   __CLASS__     常量返回该类被定义时的名字(区分大小写)。
                   __METHOD__      类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。
                   __NAMESPACE__ 当前命名空间的名称(区分大小写)。此常量是在编译时定义的(PHP 5.3.0 新增)。

      3.3.数据类型
                字符串、整型、浮点型、bool型、数组、对象、资源、mull
4.数据的处理:采集
     1.from表单
     2.ajax
     3.input流 file_get_contents("php://input")和$GLOBALS["HTTP_RAW_POST_DATA"]
     4.curl put接收数据(会丢失cookie)  https://www.oschina.net/code/snippet_192190_19100   

5.数据的处理
       1.
            1.运算符
                   【三元运算符】
                    $username = 'kwing';
                    $ret = $username == 'kwing'?'yes':'no';   //如果$username == 'kwing' 就返回yes,否则返回no;
                   //$ret = $username == 'kwing'?:'no';  可以省略掉冒号后面的内容       和if {} else{} 一样 
                    echo $ret;  // yes
            2.分支语句 if else、switch
            3.循环:while、do while、for、foreach       

       2. 字符串的处理
             1.  ‘ . ’  是拼接符【变量: $arr.$brr 这样就能拼接】
             2. 双引号会进行解析后输出(所以比较慢)
             3.{}的使用
                       $arr{0/1} 与索引数组差不对,可对字符串中的字符进行增删改查
       3. 数组的处理
             
       4. 函数:自带函数和自定义函数
             PHP魔术函数(13个)
                   __construct()   实例化对象时被调用,当__construct和以类名为函数名的函数同时存在时,__construct将被调用,另一个不被调用
                   __destruct()    当删除一个对象或对象操作终止时被调用。
                   __call()      对象调用某个方法,若方法存在,则直接调用;若不存在,则会去调用__call函数。
                   __get()       读取一个对象的属性时,若属性存在,则直接返回属性值;若不存在,则会调用__get函数。
                   __set()        设置一个对象的属性时,若属性存在,则直接赋值;若不存在,则会调用__set函数。
                   __toString()    打印一个对象的时被调用。如echo $obj;或print $obj;
                   __clone()       克隆对象时被调用。如:$t=new Test();$t1=clone $t;
                   __sleep()       serialize之前被调用。若对象比较大,想删减一点东东再序列化,可考虑一下此函数。
                   __wakeup()     unserialize时被调用,做些对象的初始化工作。
                   __isset()       检测一个对象的属性是否存在时被调用。如:isset($c->name)。
                   __unset()    unset一个对象的属性时被调用。如:unset($c->name)。
                   __set_state()  调用var_export时,被调用。用__set_state的返回值做为var_export的返回值。
                   __autoload()    实例化一个对象时,如果对应的类不存在,则该方法被调用。

             自定义函数          
                 function 方法名(参数,参数){
                        方法体;
                        return 返回值;
                 }
                1.传值与产引用的区别
                           传值的话,如果是非对象,会传一个值的拷贝,对这个变量做任何改动都不影响原值。
                           传引用或者传对象,是传真实的内存地址,对这个变量做的改动会影响原值。
                          //&$a   "&":取地址符
                               function func1($a) {
                               $a = $a + 1;
                               }
                               function func2(&$a) {
                                 $a = $a + 1;
                               }
                               $sample = 1;
                               func1($sample); 
                               echo $sample; // 输出 1

                               $sample = 1;
                               func2($sample); 
                               echo $sample; // 输出 2
               2.回调函数:
                         被调用方在接口被调用时也会调用对方的接口;既主函数在被调用执行中会调用次函数进行处理
                          function a(){};
                          function b($A){
                                   $A();
                          };
                          b('a');      //在调用b函数是 在b函数执行调用了a()函数;
              3.递归函数:
                        自己调用自己;//循环
        5.检测变量:
              值得记住的是,isset()  和 empty()   .  unset()可以销毁一个变量
              isset 检测变量是否存在,只要存在不管是否有值,头返回1(true)。
              而empty除了检查一个变量是否存在,还判断它的值是否为非空和非0.

        6.引入文件
              include "foo.php";//如果不存在,抛出警告
              include_once "foo.php";
              require "foo.php";//如果不存在,抛出错误
              require_once "foo.php";

 4.php的输出
       1.echo、return、
            echo:打印函数,适用于输出
            return:返回处理结果
点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Stella981 Stella981
2年前
KVM调整cpu和内存
一.修改kvm虚拟机的配置1、virsheditcentos7找到“memory”和“vcpu”标签,将<namecentos7</name<uuid2220a6d1a36a4fbb8523e078b3dfe795</uuid
Wesley13 Wesley13
2年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
2年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Wesley13 Wesley13
2年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
2年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
2年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
1个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这