zoukankan      html  css  js  c++  java
  • PHP基础语法

    php基础

    变量

    变量是用于存储值的,一般情况下一个变量只能装一个值,可以将变量想象是一个瓶子,值就是瓶子里面的水

    • 定义变量的方式:php中没有定义变量的关键字,但是在定义变量的时候变量名必须是$(美元符)开头,如:
    <?php
    
    $name = "alex"; // 定义一个变量
    echo $name //输出
    ?>
    
    • php变量命名规则:

      • 变量名必须以字母或者下划线"_"开头
      • 变量名只能➡由字母,数字,以及"_"组成,也可以包含汉字,但是不建议使用汉字作为变量名
      • 变量名不允许包含空格,变量名包含多个单词组成,可以使用下划线法或者骆驼式命名法
      • 在php中变量名是明确区分大小写的
    • 变量的数据类型

    在变量中,由于变量占用的空间单元不一样,也分成几种数据类型,可以使用"memory_get_usage"函数获取当前消耗的内存

    <?php
    // 获取当前消耗的内存
    $c1 = memory_get_usage();
    $name = 'alex';
    $c2 = memory_get_usage() - $c1;
    echo '变量name所占用的内存空间:'.$c2
    ?>
    

    php是一个弱类型语言,在定义时不需要声明变量的类型,php会自动吧变量转换成自动的数据类型

    <?php 
     $string = "就是就是";
     var_dump($string);  //使用var_dump查看变量的数据类型
     echo "<br />";
     $string = 9494; //自动将$string变量转换成int类型
     var_dump($string);
      echo "<br />";
    ?>
    

    php标量类型:

    字符串

    1. php中的字符串是用双引号括起来的一个词或者一个句子,比如"hello world",可以使用php语言输出echo 将字符串输出
    <?php
    // 定义一个$name变量
    $name = 'alex';
    // 输出$name变量
    echo $name
    ?>
    
    1. php连接字符串的方式

    在php中使用 . 连接两个字符串,与python或者javascript中使用+连接字符串不一样

    <?php
    // 定义变量
    $name = 'alex';
    $age = '20岁';
    
    // 使用 . 连接字符串输出
    echo '名字:'.$name.'年龄:'.$age
    
    // output: 名字:alex年龄:20岁
    ?>
    
    1. php语句结束符号:每一条php代码航结尾处都会有一个分号;结束,并且分号;一定在半角状态下输入,否则会报错
    2. php的注释是双斜杠://
    3. 当引号遇上美元符号:
    <?php
    // 定义变量
    $name = 'alex';
    // 当引号遇上美元符号
    echo '名字:$name';  //输出的是$name
    echo "名字:$name"   //字符串格式化输出
    
    ?>
    
    // output:
        名字:$name
        名字:alex
    
    1. 多行字符串

    在赋值符号后,输入界定福"<<<",接着就是标识符(代码中的EOF)

    //多行字符串
    $content = <<<EOF
    我有一只小毛驴,我从来也不骑。
    有一天我心血来潮,骑着去赶集。
    我手里拿着小皮鞭,我心里正得意。
    不知怎么哗啦啦啦啦,我摔了一身泥.
    EOF;
    echo $content;
    ?>
    

    bool类型

    布尔类型(boolean):只有两个值,一个是TRUE另一个是FALSE,bool不区分大小写,主要是用在条件结构

    <?php
    $man = '男';
    $flag = $man == '男';
    echo $flag;
    var_dump($flag)
    
    ?>
    

    整形

    整形(integet):类似于常见的证书,可以用十进制,八进制,十六进制指定,十进制就是日常使用的水,八进制数字前必须加上"0",十六进制数字前必须加"0x"

    <?php
    $data_int = 1234;   // 十进制数 
    $data_int = -567;    // 一个负数
    $data_int = 0123;    // 八进制数(等于十进制的 83)
    $data_int = 0x1a;    // 十六进制数(等于十进制的 26)
    ?>
    

    浮点型

    浮点型(浮点数,双精度数或实数),也就是通常说的消暑,可以用小数点或者科学计数法表示,科学计数法可以使用小写的e,也可以使用大写的E

    <?php
    $num_float = 1.234;    //小数点  
    $num_float = 1.2e3;    //科学计数法,小写e  
    $num_float = 7.0E-10;     //科学计数法,大写E  
    ?>
    

    php第一种特殊类型--资源

    资源(resource):资源是由专门的函数来建立和使用的,例如打开文件、数据连接、图形画布。任何资源,在不需要的时候应该被及时释放。如果我们忘记了释放资源,系统自动启用垃圾回收机制,在页面执行完毕后回收资源,以避免内存被消耗殆尽

    例如:

    <?php
    $f = fopen('./content.txt','r'); //打开文件,第一个参数是文件名,第二个参数是打开类型
    $conn = mysqli_connect('host','root','密码','数据库名');//数据库连接
    $img = imagecreate(100,100)  //画布
    
    ?>
    

    文件的简单操作:

    <?php
    $f = fopen('./content.txt','r'); //打开文件,第一个参数是文件名,第二个参数是打开类型
    if ($f){ //判断f文件资源是否存在
        //接着采用while循环(后面语言结构语句中的循环结构会详细介绍)一行行地读取文件,然后输出每行的文字
        while (!feof($f)){  //判断是否到最后一行
            $line = fgets($f); // 输出一行文本
            echo $line;
        }
    }
    ?>
    

    空类型

    NULL(空):NULL是空类型,对大小写不敏感,null类型只有一个取值,表示一个变量没有值,当被赋值为null或者尚未被赋值,或者被unset(),这三种情况下被认为为null

    <?php 
     error_reporting(0); //禁止显示PHP警告提示
     $var;
     var_dump($var);
     $var1 = null;
     var_dump($var1);
     $var2 = NULL;
     var_dump( $var2);
     $var3 = "节日快乐!";
     unset($var3);
     var_dump($var3);
    // 输出的都是null
    ?>
    
    

    自定义常量

    常量是不变的量,在常量被定义后,在脚本的任意位置都不可以被改变,PHP中的常量分为自定义常量和系统常量

    PHP自定义常量是根据我们开发的需要而定义的常量,可以使用PHP中的函数define()定义

    define()函数的语法:

    bool define(string $constant_name, mixed $value[, $case_sensitive = true])
    
    
    <!--第一个参数“constant_name”为必选参数,常量名称,即标志符,常量的命名规则与变量的一致,但是要注意哦,它可不带美元符号哦。第二个参数“value”为必选参数,它是常量的值。第三个参数“case_sensitive”为可选参数,指定是否大小写敏感,设定为true表示不敏感,一般不指定第三个参数的情况下,默认第三个参数的值为false。-->
    

    string表示参数类型为字符串类型,mixed表示参数类型可以接受为多种不同的类型

    例:

    <?php
    $p = "PII";
    define('PI',3.14);
    define($p,3.14);
    echo PI;
    echo "<br />";
    echo PII;
    ?>
    

    在使用常量的时候可以直接调用define()函数的第一个参数中的字符串调用,但是不可以进行更改.

    PHP常量取值的第二种方式:constant(),使用这种方式更加的灵活

    例1:

    <?php
    $name = 'alex';
    define("NAME",$name);
    echo NAME;
    
    define("AGE",10);
    echo AGE; // 第一种取值方式
    
    echo constant("NAME")  //第二种取值方式
    ?>
    

    例2:

    <?php 
    $p="";
    //定义圆周率的两种取值
    define("PI1",3.14);
    define("PI2",3.142);
    //定义值的精度
    $height = "中";
    //根据精度返回常量名,将常量变成了一个可变的常量
    if($height == "中"){
        $p = "PI1";
    }else if($height == "低"){
    	$p = "PI2";
    }
    $r=1;
    $area = constant($p)*$r*$r;
    echo $area;
    ?>
    

    使用defined(strinf constants_name)函数可以帮助我们判断一个常量是否已经被定义,这个函数如果只有一个参数constant_name指的是要获取常量的名称,若存在则返回布尔类型true,否则返回false

    <?php 
    define("PI1",3.14);
    $p = "PI1";
    $is1 = defined($p);
    $is2 = defined("PI2");
    var_dump($is1);
    var_dump($is2);
    ?>
    

    系统常量

    系统常量是php已经定义好的常量,可以直接拿来使用过,常用的系统常量:

    1. FILE :php程序文件名,可以帮助获取当前文件在服务器的物理位置
    2. LINE:PHP程序文件行数,可以使用该常量获取当前代码在第几行
    3. PHP_VERSION:当前解析起的版本好
    4. PHP_OS:执行当前PHP版本的操作系统名称
    <?php
    echo __FILE__;
    echo PHP_OS;
    echo __LINE__;
    echo PHP_VERSION;
    
    ?>
    

    运算符

    PHP运算符一般分为算数运算符,赋值运算符,比较运算符,三元运算符,逻辑运算符,字符串连接运算符,错误控制运算符

    算数运算符

    算数运算符只要是用于进行算数运算的,算术运算符与其他语言的运算符基本一样,不做笔记了

    1. 加法 ------ (+)
    2. 减法 ------ (-)
    3. 乘法 ------ (*)
    4. 除法 ------ (/)
    5. 取模 ------ (%)
    <?php 
    $english = 110; //英语成绩
    $math= 118; //数学成绩
    $biological = 80; //生物成绩
    $physical = 90; //物理成绩
    $sum = $english + $math + $biological + $physical;
    $avg = $sum / 4;
    $x = $math - $english;
    $x2 = $english * $english;
    
    echo "总分:".$sum."<br />";
    echo "平均分:".$avg."<br />";
    echo "数学比英语高的分数:".$x."<br />";
    echo "英语成绩的平方:".$x2."<br />";
    

    赋值运算

    1. "=" :吧右边表达式的值赋值给左边的运算符,它会将右边表达式的值复制一份,交给左边的运算符
    2. "&" :引用赋值,意味着两个变量都指向了同一个数据,将两个变量共享一块内存,如果这个内存存储的数据变了,那么两个变量的值都会发生变化

    例:

    <?php
    $a = "alex";
    $b = $a."大傻逼";
    $c = &$a;
    $a = "alex不是大傻逼";
    
    echo $a; // alex不是大傻逼
    echo $b; // alex大傻逼
    echo $c;// alex不是大傻逼
    
    ?>
    

    比较运算

    比较运算符返回都是bool类型

    比较运算符 名称
    == 等于
    === 全等
    != 不等
    <> 不等
    !== 非全等
    < 小于
    > 大于
    <= 小于等于
    >= 大于等于

    例:

    <?php
        $a = 1;
    	$b = "1";
    	var_dump($a == $b);
    	echo "<br />";
    	var_dump($a === $b);
    	echo "<br />";
    	var_dump($a != $b);
    	echo "<br />";
    	var_dump($a <> $b);
    	echo "<br />";
    	var_dump($a !== $b);
    	echo "<br />";
    	var_dump($a < $b);
    	echo "<br />";
    	$c = 5;
    	var_dump($a < $c);
    	echo "<br />";
    	var_dump($a > $c);
    	echo "<br />";
    	var_dump($a <= $c);
    	echo "<br />";
    	var_dump($a >= $c);
    	echo "<br />";
    	var_dump($a >= $b);
    	echo "<br />";
    
    ?>
    

    三元运算符

    (?:)三元运算符也是一个比较运算符

    $num = 60;
    $b  = $num <= 60 ? "及格" : "不及格"; // 如果判断成功取?后面的否则取:后面的
    echo $b
    

    逻辑运算符

    逻辑运算符朱勇是进行逻辑运算的,例如:逻辑与,逻辑或,逻辑异或,逻辑非等

    例子 名称
    $a and $b And(逻辑与)
    $a or $b Or(逻辑或)
    $a xor $b Xor(逻辑异或)
    !$a Not(逻辑非)
    $a && $b And(逻辑与)
    $a || $b Or(逻辑或)
    <?php 
        $a = TRUE; //A同意
    	$b = TRUE; //B同意
    	$c = FALSE; //C反对
    	$d = FALSE; //D反对
    	//咱顺便复习下三元运算符
    	echo ($a and $b)?"通过":"不通过";
    	echo "<br />";
        echo ($a or $c)?"通过":"不通过";
    	echo "<br />";
    	echo ($a xor $c xor $d)?"通过":"不通过";
    	echo "<br />";
    	echo !$c?"通过":"不通过";
    	echo "<br />";
    	echo $a && $d?"通过":"不通过";
    	echo "<br />";
    	echo $b || $c || $d ?"通过":"不通过";
    	
    ?>
    

    字符串连接符

    PHP中有两个方式可以将字符串连接起来,第一种是(.),第二种是(.=)

    <?php
    $a = "alex";
    $tip = $a.",欢迎您在慕课网学习PHP!";
    
    $b = "东边日出西边雨";
    $b .= ",道是无晴却有晴"; //$b = $b.",道是无晴却有晴";
    $b .= $a; // $b = $b.$a
    
    $c = "东边日出西边雨";
    $c = $c.",道是无晴却有晴";
    echo  $tip."<br />";
    echo  $b."<br />";
    echo  $c."<br />";
    ?>
    

    错误控制运算符

    PHP中提供了一个错误控制运算符"@",对于一些可能会在运行过程中出错的表达式,可以将@防止在一个PHP表达式之前,该表达式可能产生的任何错误信息都会被忽略

    <?php
    $conn = @mysqli_connect("localhost","username","password");
    echo "出错了,错误原因是:".$php_errormsg;
    
    ?>
    

    逻辑控制

    if...else...

    语法:

    <?php
    if(条件){
        // .....
    }else{
        // .....
    }
    ?>
    

    例:

    <?php
    efault_timezone_set('Asia/ShangHai'); //设置时区
    $today = date('m-d',time());  //获取当前日期
    $brithday = '04-20';
    $money = 238;
    $discount = 0.8;
    
    if ($today == $brithday){
        $sum = $money * $discount;
        echo "生日快乐,共消费:".$sum;
    }else{
        echo "共消费:".$money;
    }
    
    ?>
    

    if ... else if ...

    语法:

    if (条件1){
        // ...
    }else if(条件2){
        // ...
    }else{
        // ...
    }
    

    例:

    <?php
        $totalMoney = 0;//总工资
        $basicMoney =  2000;//基本工资
    	$sex = "男";
    
        if($sex == "男"){	
    		$totalMoney = $basicMoney  + 0;// 男的没奖金
        }else if($sex == "女")
    		$totalMoney = $basicMoney  + 300;// 女的有奖金300元
    	}
    	echo $totalMoney;
    ?>
    

    条件结构之switch ..case ...

    语法:

    <php?
    switch(条件)
    {
        case 条件值1:
            break
        case 条件值2:
            break
        default:
            //默认任务
    }
    ?>
    

    例:模拟抽奖

    <?php
    
    $num = rand(1,50);
    switch ($num){
        case 1:
            echo "一等奖";
            break;
        case 2:
            echo "二等奖";
            break;
        default:
           echo "你抽中的是$num - "."很遗憾你没有中奖!";
    }
    ?>
    

    switch中break的作用是阻止代码进入下一个case中继续执行。

    while循环语句

    语法:

    <php?
    while(条件){
        // ...
    }
    ?>
    

    例:100以内能被2整除的数相加

    <?php
    $num = 1;
    $sum = 0;
    while ($num < 100){
    
       if ($num%2 === 0){
            $sum += $num;
       }
       $num +=1;
    }
    print $sum;
    echo "循环结束";
    

    do while循环语句

    语法:

    <php?
    do{
        //执行任务
    }while(条件)
    
    ?>
    

    首先执行任务,执行任务完毕,判断某个条件是否符合(条件返回值是否为TRUE),若符合则再次执行任务,执行完毕任务,继续判定条件。

    例:

    <?php
    
    $i = 0;
    
    do{
        $i ++;
        echo "这是第($i)圈";
    }while($i < 5);
    

    while与do...whild语句的区别:while在判断条件的时候,如果条件为false,一次也不会执行,do...while会执行一个do结构体中的语句,再进行判断是否需要继续执行下去

    <?php
        //A例子
    	$num = 2;
    	$sum  = 10; 
    	while($num<3){
    		$sum = $sum  + 10;
    	}
    	echo "A例子的结果:".$sum."<br />";
    	//B例子
    	$num = 2;
    	$sum  = 10;			
    	do{
    		$sum = $sum  + 10;
    	}while($num<3);
    	echo "B例子的结果:".$sum."<br />";
    ?>
    

    例2:

    <?php
    /**
     * Created by PhpStorm.
     * User: wualin
     * Date: 2019-04-20
     * Time: 21:09
     */
    //例如开发一个掷骰子大富豪游戏,如果掷到6可以再掷一次,如果不是留则跳出可以使用do_while来实现
    
    // 使用while实现
    $sum = 0;
    $num = rand(1,6);
    $sum = $sum+$num;
    while ($num == 6){
        $num = rand(1,6);
        $sum = $sum+$num;
    }
    echo "while例子执行完毕,前进:$sum";
    
    //使用do...while实现
    $sum = 0;
    do {
        $num = rand(5, 6);
        $sum += $num;
    
    }while($num == 6);
    echo "do...while例子执行完毕,前进:$sum";
    

    for循环

    语法:

    <?php
    for(初始化;循环条件;递增项){
        // ...
    }
    ?>
    

    例:求100以内能被2整除的数

    <?php
    $sum = 0;
    for ($num=0;$num<100;$num++){
        if ($num %2 === 0){
            $sum += $num;
        }
    }
    echo $sum;
    

    foreach循环

    在php中的foreach循环语句,常用于遍历数组

    语法:

    <?php
    foreach(数组 as 值){
        // ...
    }
    
    foreach(数组 as 下标(索引) => 值){
        // ...
    }
    ?>
    

    例:遍历数组

    <?php
    $students = array(
    '2010'=>'令狐冲',
    '2011'=>'林平之',
    '2012'=>'曲洋',
    '2013'=>'任盈盈',
    '2014'=>'向问天',
    '2015'=>'任我行',
    '2016'=>'冲虚',
    '2017'=>'方正',
    '2018'=>'岳不群',
    '2019'=>'宁中则',
    );//10个学生的学号和姓名,用数组存储
    
    //使用循环结构遍历数组,获取学号和姓名  
    foreach($students as  $v)
    { 
        echo $v;//输出(打印)姓名
    	echo "<br />";
    }
    ?>
    

    使用foreach遍历二维数组

    <?php
     $students = array(
    '2010'=>array('令狐冲',"59"),
    '2011'=>array('林平之',"44"),
    '2012'=>array('曲洋',"89"),
    '2013'=>array('任盈盈',"92"),
    '2014'=>array('向问天',"93"),
    '2015'=>array('任我行',"87"),
    '2016'=>array('冲虚',"58"),
    '2017'=>array('方正',"74"),
    '2018'=>array('岳不群',"91"),
    '2019'=>array('宁中则',"90"),
    );//10个学生的学号、姓名、分数,用数组存储
     
    foreach($students as $key => $val)
    { //使用循环结构遍历数组,获取学号 
         echo $key; //输出学号
    	 echo ":";
    	 //循环输出姓名和分数
    	 foreach($val as $v)
    	{
    		echo $v; 
    	 }
    	 echo "<br />";
    }
    ?>
    
  • 相关阅读:
    归并排序
    CTE 递归
    Cordova 入门文档
    Javascript 原型链
    Windows11 正式版偷渡开启安卓子系统
    快速解决gerrit merge confict问题
    利用VPS来搭建个人主页
    检测串行序列10010
    Verilog语法总结
    深度学习中常见优化算法学习笔记
  • 原文地址:https://www.cnblogs.com/wualin/p/10744851.html
Copyright © 2011-2022 走看看