• PHP入门(二)


    一、在学习之前先了解一下PHP

      PHP 是服务器端脚本语言。(全称:PHP:Hypertext Preprocessor,即"PHP:超文本预处理器")是一种通用开源脚本语言。

      PHP 文件可包含文本、HTML、JavaScript代码和 PHP 代码,PHP 代码在服务器上执行,结果以纯 HTML 形式返回给浏览器,PHP 文件的默认文件扩展名是 ".php"

      PHP 可以生成动态页面内容, 可以创建、打开、读取、写入、关闭服务器上的文件,可以收集表单数据,可以发送和接收 cookies, 可以添加、删除、修改您的数据库中的数据,可以限制用户访问您的网站上的一些页面,可以加密数据等

    二、接下来开始正式学习PHP

      PHP 脚本可以放在文档中的任何位置。PHP 脚本以 <?php 开始,以 ?> 结束, PHP中的每个代码行都必须以分号结束。分号是一种分隔符,用于把指令集区分开来。通过 PHP,有两种在浏览器输出文本的基础指令:echo 和 print。

      如:<div><?php  echo  "欢迎来到PHP世界!";  ?></div>

    PHP 变量

    • 变量以 $ 符号开始,后面跟着变量的名称  如:$liang = 5; 或 $hermit = "欢迎来到PHP"; 如果是文本需要使用 " " 包起来。
    • 变量名必须以字母或者下划线字符开始
    • 变量名只能包含字母数字字符以及下划线(A-z、0-9 和 _ )
    • 变量名不能包含空格
    • 变量名是区分大小写的($X 和 $x 是两个不同的变量)

     PHP 是一门弱类型语言

        我们不必向 PHP 声明该变量的数据类型。PHP 会根据变量的值,自动把变量转换为正确的数据类型。在强类型的编程语言中,我们必须在使用变量前先声明(定义)变量的类型和名称,例如(TypeScript(强类型语言))。

     

     PHP 变量作用域

      变量的作用域是脚本中变量可被引用/使用的部分。PHP 有四种不同的变量作用域:local(局部)、global(全局)、static(静态)、parameter(参数)

      1.在所有函数(function)外部定义的变量,拥有全局作用域。除了函数外,全局变量可以被脚本中的任何部分访问,要在一个函数中访问一个全局变量,需要使用 global 关键字。

      2.在 PHP 函数内部声明的变量是局部变量,仅能在函数内部访问

      如:<div class="box">

          <?php
            $liang = 8;
            function hermit(){
              $hua = 10;
              echo "<div class='box1'>测试测试</div>";
              global $liang;  //全局变量必须使用global关键字才能拿到。否则在函数里面拿不到全局变量
              $aa = $liang + $hua;
              echo $aa;
            };
            hermit();
          ?>
        </div>

      3.PHP 将所有全局变量存储在一个名为 $GLOBALS[index] 的数组中。 index 保存变量的名称。这个数组可以在函数内部访问,也可以直接用来更新全局变量。

      如:<div class="box2">

          <?php
            $tu = 7;
            $lis = 9;
            $hah = 3;
            function myLiang (){
              $GLOBALS['hah'] = $GLOBALS['tu'] + $GLOBALS['lis'];
            }
            myLiang();
            echo $hah;
          ?>
        </div>

     Static 作用域

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

       如:<?php

          function myTest(){
            static $x=0; //注:每次调用该函数时,该变量将会保留着函数前一次被调用时的值,且该变量仍然是函数的局部变量。但是如果不加static,则3次调用输出都是 0
            echo $x;
            $x++;
          }
          myTest(); //第一次调用输出 0
          myTest(); //第二次调用输出1
          myTest(); //第三次调用输出2
        ?>

      注:如果不加static,则3次调用都是输出 0 

     参数作用域

      参数很简单,和javascript差不多,不过参数也要带$符号,如:

      <div class="box3">
        <?php
          function liangs($hh){
            echo $hh;
          }
          liangs(8);
        ?>
      </div>

    echo 和 print 语句

      echo 和 print 区别:  echo 可以输出一个或多个字符串、print  只允许输出一个字符串,返回值总为 1

      提示:echo 输出的速度比 print 快, echo 没有返回值,print有返回值1。

      例:<?php
          echo "<h2>PHP 很有趣!</h2>";
          echo "Hello world!<br>";
          echo "我要学 PHP!<br>";
          echo "这是一个", "字符串,", "使用了", "多个", "参数。";    //输出:这是一个字符串,使用了多个参数。
        ?>

        <?php
          print "<h2>PHP 很有趣!</h2>";
          print "Hello world!<br>";
          print "我要学 PHP!<br>";
        ?>

     

    EOF(heredoc) 定界符 (相当于html的pre标签,保留换行之类的格式)

      以 <<<EOF 开始标记开始,以 EOF 结束标记结束,结束标记必须顶头写,不能有缩进和空格,且在结束标记末尾要有分号 。

      开始标记和结束标记相同,比如常用大写的 EOT、EOD、EOF 来表示,但是不只限于那几个(也可以用:JSON、HTML等),只要保证开始标记和结束标记不在正文中出现即可。

      位于开始标记和结束标记之间的变量可以被正常解析,但是函数则不可以。在 heredoc 中,变量不需要用连接符 . 或 , 来拼接 

    例:

    <?php

    $name="runoob";

    $a= <<<EOF

     "abc"$name

      "123"

    EOF;

    // 结束需要独立一行且前后不能空格

    echo $a;

    ?>

    数据类型

      String(字符串), Integer(整型), Float(浮点型), Boolean(布尔型), Array(数组), Object(对象), NULL(空值)。

      1.字符串,使用双引号或单引号括起来的任何文本。如 : $a = 'lalalalll, 会员卡 ';

      2.整形:整数是一个没有小数的数字, 必须至少有一个数字 (0-9) ,不能包含逗号或空格,整数可以是正数或负数,可以用三种格式来指定:十进制, 十六进制( 以 0x 为前缀)或八进制(前缀为 0)。

      如:

      <?php
        $c = 2541;
        var_dump($c);
        echo '<br/>';

        $d = -28;
        var_dump($d);
        echo '<br/>';

        $e = 0x8c;//十六进制数
        var_dump($e); //140
        echo '<br/>';

        $f = 047;//八进制数
        var_dump($f); //39
        echo '<br/>';
      ?>

       附: var_dump() 函数返回变量的数据类型和值

      3. 浮点型:浮点数是带小数部分的数字,或是指数形式。

      如:

        <?php
          $g = 5.234;
          var_dump($g);
          echo '<br/>';

          $h = 2.4e3;
          var_dump($h);
          echo '<br/>';

          $i = 8E-5;
          var_export($i);
        ?>

      4.布尔型:布尔型可以是 true或 false。布尔型通常用于条件判断。

      5.数组:数组可以在一个变量中存储多个值。

      如:  

      <?php
        $arr = array('liang', 'tu', 'hua', 'hermit', 8);
        var_dump($arr);
      ?>

      

       6.对象:对象数据类型也可以用于存储数据。在 PHP 中,对象必须声明。首先,你必须使用class关键字声明类对象。类是可以包含属性和方法的结构。然后我们在类中定义数据类型,然后在实例化的类中使用数据类型

       如:<?php

          class Car{
            var $color;
            function __construct($color = '#0f0'){
              $this->color = $color;
            }
            function what_color(){
              return $this->color;
            }
          }
          function print_vars($obj){
            foreach (get_object_vars($obj) as $prop => $val){
              echo "t$prop = $val ";
            }
          }

          $herbie = new Car("white");

          //显示herbie属性
          echo " herbie: Properties ";
          print_vars($herbie);
        ?>

      附:关键字this就是指向当前对象实例的指针,不指向任何其他对象或类。

       7.NULL 值:NULL 值表示变量没有值。NULL 是数据类型为 NULL 的值。NULL 值指明一个变量是否为空值。 同样可用于数据空值和NULL值的区别。可以通过设置变量值为 NULL 来清空变量数据

       如:

        <?php
          $k = "liang Tuhua";
          echo "未清空之前: $k <br/>"; //输出:未清空之前: liang Tuhua 
          $k = null;
          echo "清空之后: $k <br/>";  //输出:清空之后: 
        ?>

    附:var_dump() 方法,判断一个变量的类型与长度,并输出变量的数值,如果变量有值,则输出是变量的值,并返回数据类型。显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。

    附:echo,print,print_r,var_dump 的区别:

      1.echo:输出一个或者多个字符串。

      2.print:和 echo 最主要的区别: print 仅支持一个参数,并总是返回 1。

      3.print_r:打印关于变量的易于理解的信息,如果给出的是 string、integer 或 float,将打印变量值本身。如果给出的是 array,将会按照一定格式显示键和元素。object 与数组类似。 记住,print_r() 将把数组的指针移到最后边。使用 reset() 可让指针回到开始处。

      4.var_dump:此函数显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。

      5.var_dump 和 print_r 的区别:var_dump 返回表达式的类型与值而 print_r 仅返回结果,相比调试代码使用 var_dump 更便于阅读。

  • 相关阅读:
    (二)基于Netty的高性能Websocket服务器(netty-websocket-spring-boot)
    (一)在Spring Boot应用启动之后立刻执行一段逻辑
    (五)SpringBoot面试题
    (三)SpringBoot停止服务的方法
    (四)Springboot以jar包方式启动、关闭、重启脚本
    (二)SpringBoot应用运维脚本
    (一)Spring Boot 常用注解
    win7 32bit下安装mysql server
    Python模块Scrapy导入出错:ImportError: cannot import name xmlrpc_client
    14.Python标准库_数据库 (sqlite3)
  • 原文地址:https://www.cnblogs.com/hermit-gyqy/p/11586200.html
Copyright © 2020-2023  润新知