zoukankan      html  css  js  c++  java
  • PHP---初探PHP

      初探PHP

        虽然说前后端分离,但作为前端还是要跟数据打交道的,所以对后台语言的了解还是很有必要的。今天要学的就是PHP。

        什么是PHP?

          PHP(外文名:PHP: Hypertext Preprocessor,中文名:“超文本预处理器”)是一种通用开源脚本语言语法吸收了C语言JavaPerl的特点,利于学习,使用广泛,主要适用于Web开发领域。PHP 独特的语法混合了CJavaPerl以及PHP自创的语法。它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成HTML标记的CGI要高许多;PHP还可以执行编译后代码,编译可以达到加密优化代码运行,使代码运行更快。

        基本语法:

          变量:创建一个变量用$标志符声明(PHP会根据$标识符识别变量),但变量本身不包括$标识符。

         

          输出:PHP的输出语句有2条: 一条是 echo语句 可以一次性输出任意条语句 ;一条是print语句,一次只能输出一条语句。2者的区别:echo执行速度快,没有返回值; print执行速度较慢(是因为有返回值 返回值总为1)。店长推荐echo输出语句

          拼接字符串(并置):PHP使用【.】来拼接字符串(跟JavaScript有很大的区别,注意区分)

          全局变量和局部变量:在函数内部的变量称为局部变量,在函数外部的变量称为全局变量。函数内部是不能直接访问到函数外部的变量的(这跟JavaScript有很大的区别,注意区分, 但可以使用$GLOBALS数组访问

      

    <?php
        $x='global x';
        function myTest(){
            //echo $x;//报错
    
            //正确写法
            echo $GLOBALS['x'];
    
            //在函数中创建全局变量
            $GLOBALS['y'] = $GLOBALS['x'];
        } 
        myTest();
        echo $y;
    ?>

      chrome中显示:

          关键字global:用于函数内访问全局变量  在函内调用全局变量,除了使用$GLOBAL数组,还可以在变量前加上global关键字

    <?php
        $x=5;
        $y=10;
        function myTest(){
            global $x,$y;
            $y=$x+$y;
        }
        myTest();
        echo $y; // 输出 15
    ?>

      chrome中显示:

        关键词static:当函数执行完毕时,内部的变量通常会被删除以减少内存的使用,但如果要指定某个局部变量不被删除,可以在第一次声明变量时使用static关键字

    <?php
    function myTest(){
        static $x=0;
        echo $x;
        $x++;
    }
    myTest();//=>0
    echo '<br>';
    echo '<br>';
    myTest();//=>1
    echo '<br>';
    echo '<br>';
    myTest();//=>2
    //变量不被删除的结果是:每次执行函数都在原来的基础上+1
    ?>

      chrome中显示:

      超级全局变量:在脚本任何地方都可以访问的变量

            1.$GLOBALS

            2.$_POST/$_GET(被广泛运用于表单数据收集和ajax请求)

            3.$_COOKIE  用于收集前端发过来的cookie数据

            4.$_REQUEST  该变量包含$_COOKIE $_POST/$_GET的内容

            5.$_SESSION   服务器版的cookie

     

      常量

         1.命名规则与变量一致,但常量名不需要加 $ 修饰符。

         2.常量值被定义后,在脚本的其他任何地方都不能被改变。

           3.默认是全局变量,可以在整个运行的脚本的任何地方使用。

         4.常量名建议全部大写

          格式:define(name,value[,case_insensitive])    name:必选参数,常量名称,即标志符。  value:必选参数,常量的值。case_insensitive :可选参数,如果设置为 TRUE,该常量则大小写不敏感。默认是大小写敏感的。

          实例:   define("ENNAME", "laoxie");

      数组:PHP的数组形式和JavaScript较大的区别;这里拿出来说一下。首先:PHP数组是有类型的:数值数组--带有数字索引值的数组  关联数组 --带有指定的键的数组,每个键关联一个值    多维数组--包含一个数组或多个数组的数组。 在PHP中,使用array()函数创建数组  echo是不能直接打印数组的(需要用到json_enconde()转换为字符串)

    <?php
        //数值数组
        $cars=array("Volvo","BMW","Toyota");
    
        //关联数组
        $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
            
    ?>

        关于数组的方法有:

          获取数组的长度:count()

          遍历数组:for / foreach()

    <?php
        //遍历数值数组:for循环
        $cars=array("Volvo","BMW","Toyota");
        $arrlength=count($cars);
        for($x=0;$x<$arrlength;$x++){
            echo $cars[$x] . "<br>";
        }
    
        //遍历关联数组:foreach
        $age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
        foreach($age as $x=>$x_value){
            echo "Key=" . $x . ", Value=" . $x_value;
            echo "<br>";
        }
    ?>

      在chrome中显示:

       面向对象:PHP的面向对象跟JavaScript也有很大的不同。

          类:定义一个类使用class关键字 加上类名 类名后紧跟一对大括号({}),在括号内可以定义变量和方法。类的变量使用var声明  里面的函数定义跟JavaScript的函数定义类似。

    <?php
        class Person{
            // 成员变量
            var $name;
            var $age = 18;
    
            //成员函数
            function setName($name){
                $this->name = $name;
            }
    
            function getAge(){
                return $this->age;
            }
        }
    ?>

          实例化对象:$p = new Person;

          调用成员属性/方法:使用“->”(类似JavaScript的【.】)调用   $p->setName('Tom');  $p->name;

           构造函数: __construct构造函数是一种特殊的方法。主要是用来创建对象时,初始化对象    声明方式:

                  function __constrcut($par1,$par2..){#code}

          构析函数:__destruct构析函数是与构造函数相反,当对象结束生命周期时(例如对象所在的函数已调用完毕),系统会自动执行构析函数 注:一个类只用存在一个构析函数。 声明方式: function __destruct(){#code}

          访问控制:public(公有,默认)--公有的类成员可以在任何地方被访问  声明方式: var $par

               private(私有)--私有成员只能在类内部才能被访问   声明方式:private $par

               protected(受保护的) --受保护的类成员只能在类内部,子类,父类中访问  声明方式:protected $par

               static(静态) --声明类属性或方法为静态,之内由类访问,不能被实例化对象访问  声明方式:static $name

                      访问方式:类名::方法/属性(很特殊,不是用【->】访问的)

              PS:  - 类属性必须定义为公有,受保护,私有之一。如果用 var 定义,则被视为公有。
                - 类中的方法可以被定义为公有,私有或受保护。如果没有设置这些关键字,则该方法默认为公有。

        

          继承:使用关键字 extends 来继承一个类,继承后子类就拥有父类的属性和方法(私有除外)

          格式如下:

    class Man extends Person {
        // 添加成员函数
        function setAge($age){
            $this->age = $age;
        }
    
        //重写方法
        function setName($name){
            $this->name = $name;
            return $name;
        }
    }

     

     

        生成动态页面:这涉及到几个方面---表单提交:$_POST、$_GET、$_REQUEST;   会话:session    关于session的几个方法:session_start()---启动新会话   session_destory()---销毁一个会话的全部数据   time()---获取当前时间

        接口:利用PHP编写数据接口  

            读取本地数据时,直接返回数据    json_encode()--讲数组转化为字符串   json_decode(json, assoc)--将字符串转化为数组/对象  assoc为true时,将返回array。

            文件的读取和写入

              fopen(filename, mode): 打开文件

              fread(): 读取内容

              fwrite():写入内容

              fclose():关闭文件

              filesize():读取文件字符长度

      

     //以读取模式打开文件
        $myfile = fopen('./data/weibo.json', 'r');
    
        //读取文件内容
        $content = fread($myfile, filesize('./data/weibo.json'));
    
        //关闭文件,减少资源占用
        fclose($myfile);

        

           获取远程json数据:

              API数据

                curl:client url

    $url = 'http://wthrcdn.etouch.cn/weather_mini?city=广州';
    
    //初始化 cURL会话
    $ch = curl_init(); 
    
    // 设置需要的选项
    curl_setopt($ch, CURLOPT_URL, $url); 
    
    //执行会话
    $contents = curl_exec($ch); 
    
    //关闭会话
    curl_close($ch); 
    
    //输出内容
    echo $contents; 

              

              爬虫:file_get_contents()   preg_match_all();

      PHP的基本语法 就写这么多了(没提到的跟JavaScript类似),细节以后会继续补充

                                              2017-3-23  15:30

          

        

  • 相关阅读:
    PyQt作品 – PingTester – 多点Ping测试工具
    关于和技术人员交流的一二三
    Pyjamas Python Javascript Compiler, Desktop Widget Set and RIA Web Framework
    Hybrid Qt applications with PySide and Django
    pyjamas build AJAX apps in Python (like Google did for Java)
    PyQt 维基百科,自由的百科全书
    InfoQ:请问为什么仍要选择Java来处理后端的工作?
    Eric+PyQt打造完美的Python集成开发环境
    python select module select method introduce
    GUI Programming with Python: QT Edition
  • 原文地址:https://www.cnblogs.com/first-time/p/6599666.html
Copyright © 2011-2022 走看看