• PHP基础语法2


    1. 数组

    PHP有两种数组:索引数组、关联数组。

    1. 函数

    自定义函数

    自定义函数通过将一组代码封装起来,使代码进行复用,程序结构与逻辑更加清晰

    返回值

    使用return关键字可以使函数返回值,可以返回包括数组和对象的任意类型,如果省略了 return,则默认返回值为 NULL

    可变函数

    所谓可变函数,即通过变量的值来调用函数,因为变量的值是可变的,所以可以通过改变一个变量的值来实现调用不同的函数。经常会用在回调函数、函数列表,或者根据动态参数来调用不同的函数。可变函数的调用方法为变量名加括号。

    内置函数

    内置函数指的是PHP默认支持的函数,PHP内置了很多标准的常用的处理函数,包括字符串处理、数组函数、文件处理、sessioncookie处理等。

    内置函数str_replace可以实现字符串的替换

    判断函数是否存在

    经常会先使用function_exists判断一下函数是否存在。

    同样的method_exists可以用来检测类的方法是否存在

    1. 类和面向对象

    构造函数

    对象实例化的时候自动调用

    析构函数

    如果类对象设置成了空 就自动调用了析构函数 比如$name=null;

    通常被用于清理程序使用的资源

    访问控制

    Static静态关键字

    静态方法中,$this伪变量不允许使用。可以使用selfparentstatic在内部调用静态方法与属性。

    对象继承

    重载

    PHP中的重载指的是动态的创建属性与方法,是通过魔术方法来实现的。属性的重载通过__set,__get,__isset,__unset来分别实现对不存在属性的赋值、读取、判断属性是否设置、销毁属性。

    方法的重载通过__call来实现,当调用不存在的方法的时候,将会转为参数调用__call方法,当调用不存在的静态方法时会使用__callStatic重载。

    对象的高级特性

    1.对象比较,当同一个类的两个实例的所有属性都相等时,可以使用比较运算符==进行判断,当需要判断两个变量是否为同一个对象的引用时,可以使用全等运算符===进行判断

    2.对象复制,在一些特殊情况下,可以通过关键字clone来复制一个对象,这时__clone方法会被调用,通过这个魔术方法来设置属性的值。

    3.对象序列化,可以通过serialize方法将对象序列化为字符串,用于存储或者传递数据,然后在需要的时候通过unserialize将字符串反序列化成对象进行使用。

    对象引用

    1. 字符串操作

    单引号和双引号的区别

    PHP允许我们在双引号串中直接包含字串变量

    而单引号串中的内容总被认为是普通字符。

    字符串的连接

    PHP中用英文的点号.来连接两个字符串。

    去除字符串首尾的空格

    PHP中有三个函数可以去掉字符串的空格

    trim去除一个字符串两端空格。
    rtrim
    是去除一个字符串右部空格,其中的rright的缩写。
    ltrim
    是去除一个字符串左部空格,其中的lleft的缩写。

    获取字符串的长度

    php中有一个神奇的函数,可以直接获取字符串的长度,这个函数就是strlen()。

    可以使用mb_strlen()函数获取字符串中中文长度。

     

    字符串的截取

    1. 英文字符串的截取函数substr()
    2. 中文字符串的截取函数mb_substr()

    查找字符串

    查找字符串,我们需要用到PHP的查找字符串函数strpos();

    函数说明:strpos(要处理的字符串, 要定位的字符串, 定位的起始位置[可选])

    替换字符串

    替换字符串,我们需要用到PHP的替换函数str_replace()

    格式化字符串

    函数说明:sprintf(格式, 要转化的字符串)

    返回:格式化好的字符串

    字符串的合并与分割

    1. php字符串合并函数implode()

    2、php字符串分隔函数explode()

    字符串的转义

    php字符串转义函数addslashes()

    函数说明:用于对特殊字符加上转义字符,返回一个字符串

    返回值:一个经过转义后的字符串

    1. 正则表达式

    PHP中使用PCRE库函数进行正则匹配,比如上例中的preg_match用于执行一个正则匹配,常用来判断一类字符模式是否存在。

    正则表达式的基本语法

    略。。。。

    6. 会话控制

    cookie简介

    Cookie是存储在客户端浏览器中的数据,我们通过Cookie来跟踪与存储用户数据。一般情况下,Cookie通过HTTP headers从服务端返回到客户端。多数web程序都支持Cookie的操作,因为Cookie是存在于HTTP的标头之中,所以必须在其他信息输出以前进行设置,类似于header函数的使用限制。

    PHP通过setcookie函数进行Cookie的设置,任何从浏览器发回的Cookie,PHP都会自动的将他存储在$_COOKIE的全局变量之中,因此我们可以通过$_COOKIE['key']的形式来读取某个Cookie值。

    设置cookie

    1.PHP设置Cookie最常用的方法就是使用setcookie函数,setcookie具有7个可选参数,我们常用到的为前5个:

     

    1.name( Cookie名)可以通过$_COOKIE['name'] 进行访问

    2.value(Cookie的值)

    3.expire(过期时间)Unix时间戳格式,默认为0,表示浏览器关闭即失效

    4.path(有效路径)如果路径设置为'/',则整个网站都有效

    5.domain(有效域)默认整个域名都有效,如果设置了'www.imooc.com',则只在www子域中有效

    2.PHP中还有一个设置Cookie的函数setrawcookie,setrawcookie跟setcookie基本一样,唯一的不同就是value值不会自动的进行urlencode,因此在需要的时候要手动的进行urlencode。

    setrawcookie('cookie_name', rawurlencode($value), time()+60*60*24*365);

    3. 因为Cookie是通过HTTP标头进行设置的,所以也可以直接使用header方法进行设置。

    header("Set-Cookie:cookie_name=value");

    cookie的删除与过期时间

    1. setcookie('test', '', time()-1);
    2. header("Set-Cookie:test=1393832059; expires=".gmdate('D, d M Y H:i:s GMT', time()-1));

    cookie的有效路径

    一般情况下,大多是使用所有路径的,只有在极少数有特殊需求的时候,会设置路径,这种情况下只在指定的路径中才会传递cookie值,可以节省数据的传输,增强安全性以及提高性能。

    session与cookie的异同

    cookie相对不是太安全,容易被盗用导致cookie欺骗

    单个cookie的值最大只能存储4k

    每次请求都要进行网络传输,占用带宽

     

    session是将用户的会话数据存储在服务端,没有大小限制,通过一个session_id进行用户识别,PHP默认情况下session id是通过cookie来保存的,因此从某种程度上来说,seesion依赖于cookie。但这不是绝对的,session id也可以通过参数来实现,只要能将session id传递到服务端进行识别的机制都可以使用session。

    使用session

    在PHP中使用session非常简单,先执行session_start方法开启session,然后通过全局变量$_SESSION进行session的读写。

    session会自动的对要设置的值进行encode与decode,因此session可以支持任意数据类型,包括数据与对象等

    默认情况下,session是以文件形式存储在服务器上的,因此当一个页面开启了session之后,会独占这个session文件,这样会导致当前用户的其他并发访问无法执行而等待。可以采用缓存或者数据库的形式存储来解决这个问题

    删除与销毁session

    1.删除某个session值可以使用PHP的unset函数,删除后就会从全局变量$_SESSION中去除,无法访问。

    2.删除某个session值可以使用PHP的unset函数,删除后就会从全局变量$_SESSION中去除,无法访问。

    3. 值得注意的是,session_destroy并不会立即的销毁全局变量$_SESSION中的值,只有当下次再访问的时候,$_SESSION才为空,因此如果需要立即销毁$_SESSION,可以使用unset函数。

    4. 如果需要同时销毁cookie中的session_id,通常在用户退出的时候可能会用到,则还需要显式的调用setcookie方法删除session_id的cookie值。

    使用session来存储用户的登录信息

    用户在登录成功以后,通常可以将用户的信息存储在session中,一般的会单独的将一些重要的字段单独存储,然后所有的用户信息独立存储

  • 相关阅读:
    HTML超文本标记语言(八)——表单<form>
    如何理解JavaScript中给变量赋值,是引用还是复制
    PostCSS 实战
    sass 工具库
    微信小程序-制作简易豆瓣笔记
    学习pano2vr制作html5全景笔记
    git命令笔记
    Gulp实战
    html5-离线存储
    html5
  • 原文地址:https://www.cnblogs.com/DemoLee/p/4202491.html
Copyright © 2020-2023  润新知