zoukankan      html  css  js  c++  java
  • PHP基础知识

    php有3种不同的变量作用域:

    >local(局部)

    >global(全局)

    >static(静态)

    函数之外声明的变量拥有global作用域,只能在函数以外访问;

    函数内部声明的变量拥有local作用域,只能在函数内部进行访问;

    在变量前添加global关键字可以访问函数内的全局变量;

    变量$GLOBALS[index]数组中存储了所有的全局变量,这个数据可以在函数内访问并更新;

    static当函数执行完后,变量值生命周期仍存在;

    //

    echo "This","is","a","test";
    print "123";
    差异:
    echo 能输出一个以上的字符串。它不返回任何值。
    print 只能输出一个字符串,并始终返回1。

    echo "my car is a {$cars[0]}"; // $cars=array("BMW", "BENZ"); 是个数组

    //

    字符串可以使用单引号(')或双引号(")

    //

    var_dump() 会返回变量的数据类型和值
    如:
    整数:
    $x=1234
    var_dump($x) ==> int(1234)
    浮点数:
    $x=10.35
    var_dump($x) ==> float(10.35)
    数组:
    $cars=array("Volvo","BMW","BENZ");
    var_dump($cars); ==>array(3) {[0]=> string(5) "Volvo" [1]=> string[3] "BMW" [2]=> string[4] "BENZ"}

    //

    对象: 对象是存储数据和有关处理数据的信息的数据类型。使用关键字class;

    class Car
    {
    var $color;
    function Car($color = "green") {
    $this->color = $color;
    }

    function what_color() {
    return $this->color;
    }
    }

    //

    NULL值:表示无值;标示变量是否为空;也用于区分空字符串与空值数据库;
    可以通过把值设置为NULL,将变量清空。

    //
    strlen() 返回字符串的长度。
    echo strlen("Hello world!") ==> 12

    strpos() 用于检索字符串内指定的字符或文本。
    如果找到,返回首个匹配的字符位置,没找到则返回FALSE。
    echo strpos("Hello world!", "world"); ==>6 字符串首位置是0开始。

    //

    常量: 在脚本中无法改变该值。常量名称前面没有$符号。常量是全局的。
    用define(x,y,z)函数设置常量:
    参数1:定义常量的名称。
    参数2:定义常量的值。
    参数3:可选。默认是false(大小写敏感)。是否大小写敏感。
    define("GREETING", "Welcome to w3cschool!");
    echo GREETING;

    //
    字符串运算符:
    . 串接 $txt1 = "Hello"; $txt2 = $txt1 . " world";  ==> $txt2 = "Hello world"
    .= 串接赋值 $txt1 = "Hello"; $txt1 .= " world"; ==>$txt1 = "Hello world"

    递增递减运算符:
    ++$x ==> $x加1,然后返回$x
    $x++ ==> 返回$x,然后$x加1

    比较运算符:
    === 全等(完全相同) $x等于$y,且它们类型相同,则返回true
    <> 不等于
    !== 不全等(完全不同) $x !== $y 如果$x不等于$y,且它们类型不相同,则返回true

    逻辑运算符:
    and 与 两个为true,返回true
    or 或 至少一个为true,返回true
    xor 异或 两个之中有且只有一个true,返回true
    && 与
    || 或
    ! 非

    数组运算符:
    + 联合 $x+$y ==> $x和$y的联合(但不覆盖重复的键)
    == 相等
    === 全等
    != 不相等
    <> 不相等
    !== 不全等

    //

    条件语句
    if () {
    } elseif () {
    } else {
    }

    //

    switch(expression)

    {

    case "grey":

      break;

    default:

      break;

    }

    // 循环

    while:

    do..while:

    for:

    foreach:只适用于数组,遍历数组中的每个元素并循环代码块。

    语法: foreach ($array as $value) {...}

    // 函数

    函数名对大小写不敏感。

    // 数组

    php中有三种数组类型:

    索引数组:带有数字索引的数组

    $cars[0] = "BMW";

    关联数组:带有指定键的数组;2种方法创建

    $age=array("peter"=>"32", "Ben"=>"25");

    或:

    $age['peter'] = "35";

    多维数组:包含一个或多个数组的数组

    count()函数用于返回数组的长度(元素个数)

    // 数组排序

    数组中的元素能够以字母或数字顺序进行升序或降序排序。a值,k键,r降序

    sort():以升序对数组排序

    rsort():降序

    asort():根据值,升序

    ksort():根据键,升序

    arsort():根据值,降序

    krsort():根据键,降序

    // 超全局变量

    在全部作用域中始终可用的内置变量。

    超全局变量有:

    $GLOBALS

    $_SERVER 保存关于报头、路径和脚本位置的信息

    $_REQUEST 用于收集html表单提交的数据

    $_POST 广泛用于收集提交method="post"的html表单后的表单数据。$_POST也常用于传递变量

    $_GET 用于收集提交html表单method="get"之后的表单数据

    $_FILES

    $_ENV

    $_COOKIE

    $_SESSION

    其中:

    1)_SERVER['PHP_SELF']

    返回当前执行脚本的文件名

    2)_SERVER['GATEWAY_INTERFACE'] 

    返回服务器使用的CGI规范的版本

    3)_SERVER['SERVER_ADDR']

    返回当前运行脚本所在的服务器的IP地址

    4)SERVER_NAME

    返回当前运行脚本所在的服务器的主机名(www.baidu.com)

    5)SERVER_SOFTWARE

    返回服务器标识字符串(apache/2.2.24)

    6)SERVER_PROTOCOL

    返回请求页面时通信协议的名称和版本("HTTP/1.1")

    7)REQUEST_METHOD

    返回访问页面使用的请求方法(如POST)

    8)REQUEST_TIME

    返回请求开始时的时间戳(1525687494)

    9)QUERY_STRING

    返回查询字符串,如果通过查询字符串访问此页面

    10)HTTP_ACCEPT

    返回来自当前请求的请求头

    11)HTTP_ACCEPT_CHARSET

    返回来自当前请求的accept_charset头(如utf-8,iso-8859-1)

    12)HTTP_HOST

    返回来自当前请求的host头

    13)HTTP_PEFERER

    返回当前页面的完整URL(不可靠,因为不是所有用户代理都支持)

    14)HTTPS

    是否通过安全HTTP协议查询脚本

    15)REMOTE_ADDR

    返回浏览当前页面的用户的IP地址

    16)REMOTE_HOST

    返回浏览当前页面的用户的主机名

    17)REMOTE_PORT

    返回用户机器上连接到web服务器所使用的端口号

    18)SCRIPT_FILENAME

    当前执行脚本的绝对路径

    19)SERVER_ADMIN

    该值指明了apache服务器配置文件中的SERVER_ADMIN参数

    20)SERVER_PORT

    web服务器使用的端口,默认为80

    21)SERVER_SIGNATURE

    返回服务器版本和虚拟主机名

    22)PATH_TRANSLATED

    当前脚本所在文件系统的基本路径

    23)SCRIPT_NAME

    返回当前脚本的路径

    24)SCRIPT_URI

    返回当前页面的URI

    >$_GET例子

    "test_get.php?subject=PHP&web=www.baidu.com"

    echo "study" . $_GET['subject'] . " at " . $_GET['web'];

    // 表单处理

    GET与POST

    get与post都创建数组,其中键是表单控件的名称,值来自用户的输入数据;

    $_GET是通过URL参数传递到当前脚本的变量数组

    $_POST是通过HTTP POST传递到当前脚本的变量数组

    通过GET方法从表单发送的信息对任何人都是可见的(所有变量名和值都显示在URL中);发送信息的数量在2千个字符;

    通过POST方法从表单发送的信息对其他人是不可见的(所有名称/值会被嵌入HTTP请求的主体中),对发送信息的数量也无限制

    // 表单验证

    htmlspecialchars()函数把特殊字符转换为HTML实体,这意味着 < 和 > 之类的html字符会被替换为&lt; 和 &gt;

    通过htmlspecialchars()函数能够避免$_SERVER['PHP_SELF']被利用;

    在用户提交表单时,我们还要做2件事:

    1>通过php trim()函数去除用户输入数据中不必要的字符(多余的空格、制表符、换行)

    2>通过php stripslashes()函数,删除用户输入数据中的反斜杠()

    // 表单必填

    empty($_POST["name"])检查变量是否为空

    // 表单验证email和url

    if (!preg_match("/^[a-zA-Z]*$/", $name)){...}

    preg_match()函数检索字符串的模式,如果模式存在则返回true,否则返回false;

    验证email

    if (!preg_match("/([w-]+@[w-]+.[w-]+)/", $email)) {...}

    验证URL

    if (!preg_match("/(?:(?:https?|ftp)://|www.)[-a-z0-9+&@#/%?=~_|!:,.;]*[-a-z0-9+&@#/%=~_|]/i",$website)) {...}

    // 在用户提交表单后保留输入字段中的值

  • 相关阅读:
    Excel入门
    夹缝中求和
    移动撤销
    CSP2020-j2 T4 方格取数
    CSP2020-j2 T3表达式(expr)
    直播 获奖(live)
    优秀的拆分(power)
    P5661 公交换乘
    P1160 队列安排
    P1083 借教室
  • 原文地址:https://www.cnblogs.com/sylar-liang/p/4579536.html
Copyright © 2011-2022 走看看