zoukankan      html  css  js  c++  java
  • php 基础语法整理

    PHP

    php是一种后台编程语言;使用php可以开发动态网站和后台接口(所谓接口就是url地址,用于给前端提供数据)。

    变量

    变量规则

    • 变量以 $ 符号开始,后面跟着变量的名称
    • 变量名必须以字母或者下划线字符开始
    • 变量名只能包含字母数字字符以及下划线(A-z、0-9 和 _ )
    • 变量名不能包含空格
    • 变量名是区分大小写的($y 和 $Y 是两个不同的变量)
    • 注意:

      PHP 是一门弱类型语言,PHP 会根据变量的值,自动把变量转换为正确的数据类型。

      在强类型的编程语言中,我们必须在使用变量前先声明(定义)变量的类型和名称。

    变量作用域

    变量的作用域是脚本中变量可被引用/使用的部分。

    有四种不同的变量作用域:

    • local

    • global

      用于函数内访问全局变量。

      函数内访问全局变量需要 global 关键字或者使用 $GLOBALS[index] 数组

      <?php
          $a=5;
          $b=3;
          function t1()
          {  
              global $a,$b;
              echo $a-$b;  // 输出 2
          }
          t1();
      
          echo PHP_EOL;
      
          function t2()
          {
              echo $GLOBALS['a']-$GLOBALS['b'];  // 输出 2
          }
          t2();
      ?>
      
    • static

      当一个函数完成时,它的所有变量通常都会被删除。但有时候希望某个局部变量不要被删除,则需要在第一次声明变量时使用 static 关键字,这样每次调用该函数时,该变量将会保留着函数前一次被调用时的值。

      注释:该变量仍然是函数的局部变量。

      <?php
          function myTest()
          {
              static $x=0;
              echo $x;
              $x++;
              echo PHP_EOL;    // 换行符
          }
      
          myTest();  //输入 0 
          myTest();  //输入 1 
          myTest();  //输入 2 
      ?>
      
    • parameter(参数作用域)

      参数是通过调用代码将值传递给函数的局部变量。

    内容输出

    • echo:输出简单数据类型,如字符串、数值
    • print_r():输出复杂数据类型,如数组
    • var_dump():输出详细信息,如对象、数组

    字符串拼接

    • js中字符串拼接用+;php中字符串拼接用.

    • strlen() 函数返回字符串的长度(字节数)

    • strpos() 函数用于在字符串内查找一个字符或一段指定的文本。

      如果在字符串中找到匹配,该函数会返回第一个匹配的字符位置。如果未找到匹配,则返回 FALSE。

    单引号与双引号

    • 单引号中的变量会当作普通字符串处理
    • 双引号中的变量会解析为变量值

    数据类型

    • 字符串
    • 整型
    • 浮点型
    • 布尔型
    • 数组
    • NULL
    <?php
        $x = "Hello world!";
    
        $x = 5985;
    	$x = -345; // 负数 
    	$x = 0x8C; // 十六进制数
    	$x = 047; // 八进制数
    
    	$x = 10.365;
    	$x = 2.4e3;
    	$x = 8E-5;
    
    	$x = true;
    	
    	$x = array("Volvo","BMW","Toyota");
    	
    	$x = null;
    
    	var_dump($x)  //返回变量的数据类型和值
    ?>
    
    • 对象

    对象数据类型也可以用于存储数据。

    在 PHP 中,对象必须声明,使用class关键字声明类对象。类是可以包含属性和方法的结构。类中定义数据类型,然后在实例化的类中使用数据类型。

    <?php
        class Car {
            var $color;
            function __construct($color="green") {
              $this->color = $color;
            }
            function what_color() {
              return $this->color;
            }
        }
    
        function print_vars($obj) {
           foreach (get_object_vars($obj) as $prop => $val) {
             echo "$prop = $val";
           }
        }
    
        // 实例一个对象
        $herbie = new Car("white");
        print_vars($herbie);
    
    ?> 
    

    条件语句

    • if 语句 - 在条件成立时执行代码
    • if...else 语句 - 在条件成立时执行一块代码,条件不成立时执行另一块代码
    • if...elseif....else 语句 - 在若干条件之一成立时执行一个代码块
    • switch 语句 - 在若干条件之一成立时执行一个代码块

    elseifelse if 完全同效果,elseif 是 PHP 为 else if 专门做到容错版。更准确更严格到写法为后者: else if

    数组

    array() 函数 ----- 创建数组

    数值数组

    带有数字 ID 键的数组

    <?php
        //两种创建数值数组的方法:
        // 1.自动分配 ID 键(ID 键总是从 0 开始):
        $cars = array("Volvo","BMW","Toyota");
    
        // 2.人工分配 ID 键:
        $cars[0] = "Volvo";
        $cars[1] = "BMW";
        $cars[2] = "Toyota";
    
        //获取数组的长度 
        echo count($cars);
    
        //遍历 -- for循环
        for($i =0; $i<count($cars); $i++){
            echo $age1[$i];
            echo "<br/>";
        }
    ?>
    

    关联数组

    带有指定的键的数组,每个键关联一个值

    <?php
        //两种创建关联数组的方法:
    	$age=array("Peter" => "35", "Ben" => "37", "Joe" => "43");
    	
    	$age['Peter'] ="35";
    	$age['Ben'] = "37";
    	$age['Joe'] = "43";
    
    	echo $age['Peter'];  // 35
    
    	//遍历 -- foreach循环
    	foreach($age as $x => $x_value){
        	echo "Key=" . $x . ", Value=" . $x_value;
        	echo "<br>";
    	}
    ?>
    

    多维数组

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

    <?php
        // 二维数组:
        $cars = array
        (
            array("Volvo",100,96),
            array("BMW",60,59),
            array("Toyota",110,100)
        );
    
    	echo $cars[0][1]; // 100
    ?>
    

    数组排序函数

    PHP 数组排序函数:

    • sort() - 对数组进行升序排列
    • rsort() - 对数组进行降序排列
    • asort() - 根据关联数组的值,对数组进行升序排列
    • arsort() - 根据关联数组的值,对数组进行降序排列
    • ksort() - 根据关联数组的键,对数组进行升序排列
    • krsort() - 根据关联数组的键,对数组进行降序排列
    <?php
    	$cars=array("Volvo","BMW","Toyota");
    	sort($cars);
    	print_r($cars);  // Array ( [0] => BMW [1] => Toyota [2] => Volvo )
    
    	$age = array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
    	asort($age);
    	print_r($age); // Array ( [Peter] => 35 [Ben] => 37 [Joe] => 43 )
    
    	$age2 = array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
    	ksort($age2);
    	print_r($age); // Array ( [Ben] => 37 [Joe] => 43 [Peter] => 35 )
    ?>
    

    超级全局变量

    • $GLOBALS
    • $_SERVER
    • $_REQUEST
    • $_POST
    • $_GET
    • $_FILES
    • $_ENV
    • $_COOKIE
    • $_SESSION

    $_POST

    • $_POST 被广泛应用于收集表单数据,在HTML form标签的指定该属性:"method="post"。
    <form action="login.php" method="post" >
    	name: <input type="text" name="name" >
    	password: <input type="password" name="pwd">
    	<button type="submit">Login</button>
    </form>
    
    // login.php
    <?php
    	// 根据表单中name属性值获取
    	$name = $_POST['name'];
    	$pwd = $_POST['pwd'];
    
    	echo $name;
    	echo $pwd;
    
    	header("Content-Type:text/html; charset=utf-8"); //设置服务器响应的文件类型,字符集编码
    ?>
    

    $_GET

    • $_GET 同样被广泛应用于收集表单数据,在HTML form标签的指定该属性:"method="get"。

    • $_GET 也可以收集URL中发送的数据。

    <?php
        /* url: http://www.test.cc/?name=abc
        $_GET['name'] 得到url地址中传递的参数name的值
        */
        $name = $_GET['name'];
    	echo $name;
    ?>
    

    循环

    • while - 只要指定的条件成立,则循环执行代码块
    • do...while - 首先执行一次代码块,然后在指定的条件成立时重复这个循环
    • for - 循环执行代码块指定的次数
    • foreach - 根据数组中每个元素来循环代码块
    <?php
        // 使用for循环,实现冒泡排序:
        $arr = array(5,3,6,2,8,10);
        for($i = count($arr)-1;$i>=0;$i--){
            for($j = 0 ; $j < $i ; $j++){
                if($arr[$j+1] > $arr[$j] ){
                    $aa = $arr[$j+1];
                    $arr[$j+1] = $arr[$j];
                    $arr[$j] = $aa;
                }
            }
        }
        print_r($arr);
    ?>
    
    

    函数

    自定义函数

    • 语法规则(函数名不区分大小写)
    <?php
    	function foo($name){
    		return $name;
    	}
     	$name = foo('zhangsan');
    	echo $name;
    ?>
    

    系统函数(内置函数)

    • gettype()
    • json_encode()
  • 相关阅读:
    在openSUSE11.1上安装和配置LAMP(Apache/MySQL/PHP)
    正则表达式的性能?!
    RealPlayer11 for linux 64位 下载
    未能加载视图状态。
    双边贸易网 YouMeTrade.com 上线了, 欢迎大家推荐网站优化技术,也发一些我的心得.
    Sql2000分页效率之我见。
    Linq查询绑定给GridView,提示 数据源不支持服务器端的数据分页.
    控件开发笔记,鄙视写 LinkButton 那个傻蛋.
    有关SQLSERVER 中DATEDIFF函数分析
    使用SHTML更好的维护门户网站(转)
  • 原文地址:https://www.cnblogs.com/vicky123/p/13441271.html
Copyright © 2011-2022 走看看