• PHP基础回顾(一)


    PHP 能做什么?
    PHP 可以生成动态页面内容
    PHP 可以创建、打开、读取、写入、关闭服务器上的文件
    PHP 可以收集表单数据
    PHP 可以发送和接收 cookies
    PHP 可以添加、删除、修改您的数据库中的数据
    PHP 可以限制用户访问您的网站上的一些页面
    PHP 可以加密数据
    通过 PHP,您不再限于输出 HTML。您可以输出图像、PDF 文件,甚至 Flash 电影。您还可以输出任意的文本,比如 XHTML 和 XML。


    为什么使用 PHP?
    * PHP 可在不同的平台上运行(Windows、Linux、Unix、Mac OS X 等)
    * PHP 与目前几乎所有的正在被使用的服务器相兼容(Apache、IIS 等)
    * PHP 提供了广泛的数据库支持
    * PHP 是免费的,可从官方的 PHP 资源下载它: www.php.net
    * PHP 易于学习,并可高效地运行在服务器端

    PHP 变量
    与代数类似,可以给 PHP 变量赋予某个值(x=5)或者表达式(z=x+y)。变量可以是很短的名称(如 x 和 y)或者更具描述性的名称(如 age、carname、totalvolume)。
    PHP 变量规则:
    * 变量以$符号开始,后面跟着变量的名称
    * 变量名必须以字母或者下划线字符开始
    * 变量名只能包含字母数字字符以及下划线(A-z、0-9 和 _ )
    * 变量名不能包含空格
    * 变量名是区分大小写的($y 和 $Y 是两个不同的变量)

    PHP 是一门弱类型语言

    PHP 变量作用域
    变量的作用域是脚本中变量可被引用使用的部分。
    PHP 有四种不同的变量作用域:
    local
    global
    static
    parameter

    PHP global 关键字
    global 关键字用于函数内访问全局变量。在函数内调用函数外定义的全局变量,我们需要在函数中的变量前加上 global 关键字。PHP 将所有全局变量存储在一个名为$GLOBALS[index] 的数组中。 index 保存变量的名称。这个数组可以在函数内部访问,也可以直接用来更新全局变量。

      function myTest()
    {
        global $x,$y;
        $y=$x+$y;
    }
    
      function myTest()
    {
      $GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];
    } 
    

    static 关键字
    当一个函数完成时,它的所有变量通常都会被删除。然而,有时候您希望某个局部变量不要被删除。要做到这一点,请在您第一次声明变量时使用 static 关键字。

    echo 和 print 区别:
    echo - 可以输出一个或多个字符串
    print - 只允许输出一个字符串,返回值总为 1
    提示:echo 输出的速度比 print 快, echo 没有返回值,print有返回值1。

    **数组
    var_dump() 函数返回数组的数据类型和值

     <?php 
    $cars=array("Volvo","BMW","Toyota");
    var_dump($cars);
    ?>
    

    对象
    使用class关键字声明类对象。类是可以包含属性和方法的结构。

      <?php
        class Car
      {
      var $color;
      function __construct($color="green") {
        $this->color = $color;
      }
      function what_color() {
        return $this->color;
      }
    }
    ?>
    

    常量

    <?php
    define("GREETING", "欢迎访问 Runoob.com");
    function myTest() {
    echo GREETING;
    } 
    myTest();    // 输出 "欢迎访问 Runoob.com"
    ?>
    

    字符串连接
    并置运算符 (.) 用于把两个字符串值连接起来。

    PHP strlen() 函数
    strlen() 函数返回字符串的长度(字符数)。

     <?php
      echo strlen("Hello world!");
    ?> 
    

    PHP strpos() 函数
    strpos() 函数用于在字符串内查找一个字符或一段指定的文本。如果在字符串中找到匹配,该函数会返回第一个匹配的字符位置。如果未找到匹配,则返回 FALSE。

     <?php
      echo strpos("Hello world!","world");
     ?> 
    

    遍历数组for循环

    <?php
    $cars=array("Volvo","BMW","Toyota");
    $arrlength=count($cars); 
    for($x=0;$x<$arrlength;$x++)
    {
        echo $cars[$x];
        echo "<br>";
    }
    ?>
    

    遍历关联数组foreach

    <?php
        $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
    foreach($age as $x=>$x_value)
    {
        echo "Key=" . $x . ", Value=" . $x_value;
        echo "<br>";
    }
    ?>
    

    数组排序(冒泡排序)
    PHP 数组排序函数
    sort() - 对数组进行升序排列
    rsort() - 对数组进行降序排列
    asort() - 根据关联数组的值,对数组进行升序排列
    ksort() - 根据关联数组的键,对数组进行升序排列
    arsort() - 根据关联数组的值,对数组进行降序排列
    krsort() - 根据关联数组的键,对数组进行降序排列

    <?php
    // 从大到小排序。冒泡排序。
    $numArray =array(3,2,6,5,8,10);
    $numCount = count($numArray);
    for($i=$numCount-1;$i>=0;$i--){
        for($j=0;$j<$i;$j++){
            if($numArray[$j]< $numArray[$j+1]){
                $aa = $numArray[$j+1];
                $numArray[$j+1]=$numArray[$j];
                $numArray[$j]=$aa;
            }
        }
    }
    print_r($numArray);
    ?>
    

    超级全局变量
    PHP中预定义了几个超级全局变(superglobals) ,这意味着它们在一个脚本的全部作用域中都可用。 不需要特别说明,就可以在函数及类中使用。PHP 超级全局变量列表:
    $GLOBALS $_SERVER
    $_REQUEST
    $_POST
    $_GET
    $_FILES
    $_ENV
    $_COOKIE
    $_SESSION

    PHP $GLOBALS
    $GLOBALS 是PHP的一个超级全局变量组,在一个PHP脚本的全部作用域中都可以访问。$GLOBALS 是一个包含了全部变量的全局组合数组。变量的名字就是数组的键。

    <?php 
    $x = 75; 
    $y = 25; 
    function addition() 
    { 
        $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; 
    } 
    addition(); 
    echo $z; 
    ?>
    

    PHP $_SERVER
    $_SERVER 是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。这个数组中的项目由 Web 服务器创建。不能保证每个服务器都提供全部项目;服务器可能会忽略一些,或者提供一些没有在这里列举出来的项目。

    <?php 
    echo $_SERVER['PHP_SELF'];
    echo "<br>";
    echo $_SERVER['SERVER_NAME'];
    echo "<br>";
    echo $_SERVER['HTTP_HOST'];
    echo "<br>";
    echo $_SERVER['HTTP_REFERER'];
    echo "<br>";
    echo $_SERVER['HTTP_USER_AGENT'];
    echo "<br>";
    echo $_SERVER['SCRIPT_NAME'];
    ?>
    

    PHP $_REQUEST
    PHP $_REQUEST 用于收集HTML表单提交的数据。用户通过点击 “Submit” 按钮提交表单数据时, 表单数据将发送至标签中 action 属性中指定的脚本文件。 然后,我们可以使用超级全局变量 $_REQUEST 来收集表单中的 input 字段数据(通过$_REQUES[’ ‘]拿到表单提交的数据):

    <html>
    <body>
    <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
    Name: <input type="text" name="fname">
    <input type="submit">
    </form>
    <?php
    $name = $_REQUEST['fname'];
    echo $name;
    ?>
    </body>
    </html>
    

    PHP $_POST
    PHP $_POST 被广泛应用于收集表单数据,在HTML form标签的指定该属性:”method=”post”。用户通过点击 “Submit” 按钮提交表单数据时, 表单数据将发送至标签中 action 属性中指定的脚本文件

    PHP $_GET
    PHP $_GET 同样被广泛应用于收集表单数据,在HTML form标签的指定该属性:”method=”get”。
    $_GET 也可以收集URL中发送的数据。

    foreach 循环

     <?php
    $x=array("one","two","three");
    foreach ($x as $value)
    {
    echo $value . "<br>";
    }
    ?>
    

    PHP 魔术常量
    PHP 向它运行的任何脚本提供了大量的预定义常量。不过很多常量都是由不同的扩展库定义的,只有在加载了这些扩展库时才会出现,或者动态加载后,或者在编译时已经包括进去了。有八个魔术常量它们的值随着它们在代码中的位置改变而改变。例如 __LINE__ 的值就依赖于它在脚本中所处的行来决定。这些特殊的常量不区分大小写,如下:
    - __LINE__文件中的当前行号。
    - __FILE__文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。
    - __DIR__文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。它等价于 dirname(__FILE__)。除非是根目录,否则目录中名不包括末尾的斜杠。
    - __FUNCTION__函数名称
    - __CLASS__类的名称
    - __TRAIT__***代码复用的一个方法,称为 traits(相当于java中继承,继承父类的方法,以及重写父类的方法等*)。

    <?php
    class Base {
        public function sayHello() {
            echo 'Hello ';
        }
    } 
    trait SayWorld {
        public function sayHello() {
            parent::sayHello();
            echo 'World!';
        }
    }
    class MyHelloWorld extends Base {
        use SayWorld;
    }
    $o = new MyHelloWorld();
    $o->sayHello();
    ?>
    //输出Hello World!
    
    • __METHOD__类的方法名。返回该方法被定义时的名字(区分大小写)。
    • __NAMESPACE__当前命名空间的名称(区分大小写)。此常量是在编译时定义的

    PHP 命名空间(namespace)
    PHP 命名空间可以解决以下两类问题:
    - 用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突。
    - 为很长的标识符名称(通常是为了缓解第一类问题而定义的)创建一个别名(或简短)的名称,提高源代码的可读性。

    • 命名空间通过关键字namespace 来声明
    • 在声明命名空间之前唯一合法的代码是用于定义源文件编码方式的 declare 语句。所有非 PHP 代码包括空白符都不能出现在命名空间的声明之前
    • 与目录和文件的关系很像,PHP 命名空间也允许指定层次化的命名空间的名称。

    PHP 面向对象(类比java)
    - PHP 类定义: class Site(){…}
    - PHP 中创建对象: $runoob = new Site;
    - 调用成员方法: $runoob->getUrl();
    - PHP 构造函数: void __construct (){…}
    - 析构函数: 对象结束其生命周期时系统自动执行析构函数。
    function __destruct() {
    print “销毁 ” . $this->name . “ ”;
    }
    - 继承:
    class Child extends Parent {…}
    - 方法重写: 对父类的方法进行改写覆盖override)
    - 访问控制: 关键字 public,protected或 private
    - 接口: 用interface指定,其类用implements实现。接口像定义一个标准的类一样,但其中定义所有的方法都是空的。
    - 常量: 定义和使用常量的时候不需要使用 $ 符号
    - 抽象类:
    1、至少有一个方法是被声明为抽象的
    2、不能被实例化
    3、继承(extend)一个抽象类的时候,子类必须定义父类中的所有抽象方法
    - Static 关键字:
    1、声明类属性或方法为 static(静态),就可以不实例化类而直接访问。静态属性不能通过一个类已实例化的对象来访问(但静态方法可以)。
    2、由于静态方法不需要通过对象即可调用,所以伪变量 $this 在静态方法中不可用。
    3、静态属性不可以由对象通过 -> 操作符来访问。
    - Final 关键字:父类中的方法被声明为 final,则子类无法覆盖该方法。如果一个类被声明为 final,则不能被继承
    - 调用父类构造方法:需要在子类的构造方法中调用 parent::__construct()

  • 相关阅读:
    Editor HDU
    Out of Sorts II
    庭师的利刃
    HDU 2087: 剪花布条
    【高精度】高精度乘法
    【高精度】高精度数除以低精度数I
    【高精度】高精度阶乘
    【高精度】高精度分数
    【高精度】简单高精度减法
    【高精度】简单高精度加法
  • 原文地址:https://www.cnblogs.com/smileyqp/p/12675414.html
Copyright © 2020-2023  润新知