常量变量与运算符

PHP基础-02 常量变量与运算符

1.语言基础

  • PHP与ASP、JSP一样,都是嵌入到HTML文件中的服务器端的脚本语言;
  • PHP文件的后缀是.php
  • PHP代码的标记:

2.输出时间

echo date('Y-m-d H:i:s');
  • 默认情况下PHP输出的时间是格林威治时间,比中国时区晚8个小时

  • 解决方案:

    • 1.0 找到PHP的配置文件 php.ini
    • 2.0 定位到 date.timezone
    • 3.0 设置中国时区
      ; PRC为中华人民共和国
      date.timezone = PRC
    

3.变量

3.1特点

  • 变量是临时存储数据的容器;
  • 变量是存储在内存当中;
  • 网页执行完毕后,网页中相关的变量全部消失。

3.2变量命名规则

  • 变量名称只能包含:字母、数字、下划线
  • PHP中的变量名必须以 “ ” 符 号 开 头 , 但 是 ” ” 符号开头,但是” ”符号不属于变量的一部分,将来不管是赋值还是取值,都必须加上”$”
  • 变量名区分大小写
  • PHP中的变量使用不需要声明,直接赋值使用
  • 常用的两种命名方法:
    • 驼峰命名法
    • 第一个单词的首字母小写,其余单词的首字母全部大写
    • 如:userName,userId
    • 帕斯卡命名法:
    • 与驼峰命名法很像
    • 唯一区别是它的首字母是大写
    • 如:UserName,UserId
    • 下划线命名法
    • 所以的单词首字都小写,由下划线连接
    • 如:user_name,user_id

3.3变量的声明与赋值

  • 声明

    • PHP中变量不需要声明,但是每个变量必须以$开
  • 赋值:

    • 直接给带有$的变量赋值

    • 使用“=”,赋值运算符给变量赋值,“=”读作赋值运算符

    • 赋值运算符的左边只能是一个变量名

    • 如:$userName = “张三”;

      $userName = “李四”;

3.4变量值的读取

  • 变量的数据类型由其中的内容决定

  • 直接以 “$+变量名”的方式 取得可以取得变量的值

    $userName = "admin";
    
  • 可以使用“.”来连接将变量与字符串一起输出

    echo "我的名字叫".$userName
    
  • 也可以在字符串的内部直接使用变量

    • 在PHP中“.”点表示相连
    • 在PHP中“+”加表示相加(是一种算术运算符)
    echo "我的名字叫做$userName"
    但是,如果用引号时,变量后面还有其它的有文字,就不能解析了如
    echo "我的名字叫做$userName很高兴见到大家"
    这里就无法解析,需要在变量后面添加一个非空特殊字符,如:
    echo "我的名字叫做{$userNmae}很高兴见到大家"
    如果输出字符是单引号,则无法解析字符串
    

3.5变量相关函数

  • header():设置服务器返回到浏览器的数据的类型

    header('content-type:text/html;charset=utf-8');
    
  • isset() 判断变量是否存在

    • 可以用来判断变量是否定义,或者是否为null
  • empty() 判断变量是否为空

    • 如果 var 是非空或非零的值,则 empty() 返回 FALSE
    • “”0“0”NULLFALSEarray()var $var; 以及没有任何属性的对象都将被认为是空的,也就意味着,如果上述的数据用empty来判断返回的结果都为true
  • unset() 删除变量

    • 可以通过这个函数删除一个已经存在的变量,删除之后变量为null
    • 可以同步删除多个变量
    • 如果在函数中 unset() 一个全局变量,则只是局部变量被销毁,而在调用环境中的变量将保持调用 unset() 之前一样的值。(这个当我们学了全局变量与局部变量以后再说)
    unset($a,$b,$c)
    
  • var_dump() 显示变量的类型和值

    • 可以同时打印多个变量
  • print_r() 显示数组的元素信息

    • 如果是字符串,数字,boolean值,会原样输出
    • 如果是数组,会详细打印数组信息

3.6可变变量

  • 指一个变量的名称,由另一个变量的值来充当

    $a = "b";
    $b = "c";
    echo $b;//输出  c
    echo $$a;//输出 c
    
  • 如果使用可变变量,一定要加上给可变变量的变量名加上{}作为定界符

3.7变量的值传递和引用传递

  • JS中的基本数据类型(只有一个值):字符串型、数值型、布尔型、undefined、null

  • JS中的复合数据类型(多个值):数组(Array)、对象(Object)、函数(Function)

  • 值传递:

    • 传递的是变量中保存的值
  • 引用传递

    • 传递的是变量保存的引用地址
  • 在PHP中可以使用 & 符号将值传递的变量改变为引用传递:如

    $a = "abc";
    $b = &$a;
    $a = "123";
    echo "$a<br/>$b"
    

4.常量

4.1概念

  • 常量就是值永远不变的量,即:一旦赋值无法删除,修改。
  • 由于变量在使用时还需要去它存储的地址中去找到对应的数据,相比变量来说,常量的速度要快。

4.2命名规则

  • 与变量基本一致
    • 变量名称只能包含:字母、数字、下划线,常量也是
    • PHP中的常量不需要使用$符号开头
    • 常量名区分大小写,一般建议使用时尽量用大写,为了与变量区分开
    • 常用的两种命名方法:
    • 驼峰命名法
      • 第一个单词的首字母小写,其余单词的首字母全部大写
      • 如:uerName,userId
    • 下划线命名法
      • 所以的单词首字都小写,由下划线连接
      • 如:user_name,user_id

4.3常量定义define()

  • 语法: bool define ( string value [, bool $case_insensitive = false ] )

  • 案例:通过define关键来定义

    define('TITLE',"PHP语言");//定义常量TITLE
    define('TITLE',"PHP语言",true);//加上true,使用时既可以使用TITLE,又可以使用小写title,来使用常量
    define('TITLE',"PHP语言",false);//加上false,使用时必须使用TITLE
    

判断是否是常量:defined()

  • 语法: bool defined ( string $name )

  • defined()可以判断常量

    defined(TITLE);//通过defined判断常量时,常量一定要加上引号1
    

4.4魔术常量

  • 量的值在程序运行过程中不会改变。但是,魔术常量的值,会随着所在位置的不同而改变。
  • 魔术常量都由系统定义好的,我们直接使用就好了,常用的有:
    • LINE:得到当前代码的行号
    • FILE:得到当前文件的路径
    • DIR:得到当前文件所在目录
    • FUNCTION:得到所在函数

5.数据类型

  • 数据类型分类

    js中的数据类型:
    简单数据类型:
        Number,string,bool,undefined
      复杂数据类型
        数组,对象,null
    
    • 基本数据类型:字符串型(string)、整型(int)、浮点型(float:小数)、布尔型(bool)
    • 复合数据类型:数组、对象
    • 特殊数据类型:资源、NULL
  • 数据类型判断

    • is_bool(),判断变量是不是布尔型
    • is_int(),判断变量是不是整型
    • is_string() 判断变量是不是字符串型
    • is_float() 判断变量是不是浮点型
    • is_numeric() 判断变量不是数值型或数字字符串。
    • is_array() 判断变量是不是数组
    • is_null() 判断变量是否为NULL
    • is_resource() 判断变量是不是资源型
    //判断用户是否大于18岁,如果大于18岁,显示网页内容,如果没有,则不显示
    $age = 20;
    if(isset($age) && is_numeric($age)) {
        if($age >18) {
          echo('显示网页');
        } else {
          echo ('不显示');
        }
    }
    

5.3整型

  • 关键字:int

  • 在js中所有的数字都用number来表示,但是在PHP,数字有不同的划分,其中整数(正整数,0,负整数)用整型来表示

    • 整型包含正整数、负整数、零0
    • 可以用10进制、八进制、16进制表示
    echo 100;//十进制
    echo 011;//八进制,以0开头的整数,结果为9
    echo 0x9a;//十六进制,以0x开头,结果为154
    
    • PHP中最大整数:PHP_INT_MAX,(2^31)-1
  • 如果数字超出来了整数据范围,则类型会变为float

5.4浮点型

  • 关键字:float

  • PHP中除了整数还有浮点型,一般浮点数会包含小数,比整型更加精确

  • 浮点型的范围:1.8E-308~1.8E+308

  • 注意点:

    • 如果要对浮点数进行操作,就好先将浮点数转为整数再处理
    //以下做法不可取
    if(2.1/0.7 == 3) {
      echo '相等';
    } else {
      echo '不相等';
    }
    //以下是正确做法
    $a = 2.1 * 10;
    $b = 0.7 * 10;
    if($a/$b == 3) {
      echo '相等';
    } else {
      echo '不相等';
    

5.5字符串

  • 字符串定义的四种方式

    • 用单引号可以定义一个字符串;如:$a = ‘abc’;
    • 单引号内无法解析变量
    • 转义符号有:\’
    • 用双引号来定义一个字符串;如:$a = “abc”;
    • 双引号内可以解析变量
    • 转义符号有:\、\’、\”、$、\r、\n、\t
    • 定义长字符串:heredoc
    <?php
    header('content-type:text/html;charset=utf-8');
    $a = 'abc';
    $aa = <<<heredoc
    <html>
    123$a
    </html>
    heredoc;
    echo $aa;
    ?>
    
    • 使用注意:
      • 1)字符串放在两个heredoc标签之间
      • 2)以“<<

5.6布尔型

  • 关键字:bool
  • 概念
    • true表示真,flase表示假
  • 转换:
    • 0,”“,NULL,0.0,”0”,arry() 空数组会转为false
    • 其它的数据都会转为true

5.7空型

  • 用null表示,表示没有
  • 以下情况会出现NULL
    • 可以直接给一个变量,赋一个NULL值;
    • 未定义的变量的值,也是NULL;
    • unset()删除一个变量后,该变量的值为NULL。

6.数据类型转换

  • 概念

    • 数据有不同的类型,有时间操作数据时需要转换类型以后才能完成操作,比如计算
    • 类型的转换分为两种:自动转换(隐式转换)、手动转换(强制转换)
    • 大部分情况下数据是自动转换,少数情况下强制转换。
  • 强制转换

    • 通过关键字进行转换
    (bool)$a   //强制转换为bool
        //除了0,0.0,”“,”0“,NULL,array(),转为false,其余都为true
    (int)$a        //强制转换为int
        //转换会将小数去尾
    (string)$a //强制转换为string
        //null也可以转为‘’;
    (array)$a  //强制转换为array
    (object)$a //强制转换为object
    
  • 进制转换

    • 进制就进位制,X进制,就是逢X进一。同理:十进制就是逢十进一,二进制逢二进一等等。
    • 8进制:有8个基本数,分别为0、1、2、3、4、5、6、7,运算规则”逢8进1”;
    • 16进制:有16个基本数,分别为0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F,运算规则”逢16进1”。
    • 2进制:有2个基本数,分别是0、1,运算规则”逢2进1”。
    • 转换方法:
    • decbin()将十进制转换为2进制
    • bindec()将2进制转换为十进制
    • decoct()将十进制转换为8进制
    • octdec()将八进制转换为10进制
    • dechex()将十进制转换为16进制
    • hexdec()将16进制转换为十进制

6.4运算符

  • 算数运算符+、-、*、/、%、++、–

  • 赋值运算符=、+=、-=、*=、/=、%=

  • 字符串运算符. 和 .=

  • 比较运算符>、<、>=、<=、==、!=、===、!==

    • 案例:字符串比较
    • ASCII码表:如果两个字符进行比较,比较的本质是它们对应的ASCII码
    echo ("a" > 120);
    
  • 逻辑运算符&&、||、!

    • 实例:闰年判断
    //条件:
    //1)能够被4整除,且不能被100整除
    //2)能被400整除
    $year = 2000;
    if ($year%4 == 0 && $year % 100 !=0 || $year % 400 ==0) {
        echo "{$year}是闰年";
    } else {
        echo "{$year}不是闰年";
    }
    
  • 运算符优先级

  • 三元运算符

    • 案例:比较两个数的大小
    $a = 123;
    $b = 456;
    $max = $a > $b ? $a : $b;
    
  • 错误控制运算符(@)

    • 作用:主要用来屏蔽表达式的错误:
    • 可以用在变量、常量、函数调用之前,但是不能用在函数定义、类定义之前。
    $a = 100;
    $b = 0;
    echo @($a / $b);
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值