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

    对于字符串中的指定字符做增删改查操作

        $string='abcdef';
        //查找
        echo $string{0};
        echo '<br/>';
        //注意,修改的时候只能一个字符替换一个字符
        $string{1}='z';
        echo $string;//azcdef
        echo '<br/>';
        $string{4}='!';
        echo $string;//azcd!f
        echo '<hr/>';
        $string='abc';
        $string{0}='hello';
        echo $string;//hbc
        echo '<hr/>';
        //不要对于中文字符做操作
        $string='你好';
        var_dump($string);//'你好' (length=6)
        echo '<hr/>';
        //删除 不知道为啥这部分我做了没效果,还是输出原来的字符串;
        如果把''改成' ',原来的字符位置又会多出一个空格,不明白不明白??
        $string='abcdef';
        $string{2}='';
        echo $string; //abcdef
        echo '<br/>';
        $string{0}=''; //abcdef
        echo $string;
        //添加字符
        echo '<br/>';
        $string='abc';
        $string{3}='d';//abcd
        echo $string;
        echo '<br/>';
        $string='abc';//abc00e
        $string{5}='e';
        echo $string;//abc e

    不存在的变量返回null
    销毁变量使用unset()

        $a=$b=$c='king';
        //一次销毁3个变量
        unset($a,$b,$c);
        var_dump($a,$b,$c);

    php换行符
    1. 是使源代码换行,而浏览器显示的内容不换行(用双引号包裹);
    2.<br />是使浏览器显示的内容换行,而源代码不换行


    临时转换

        $var=true;
        //临时转换成整型
        var_dump((int)$var,(integer)$var);//1 1
        //临时转换成浮点类型
        var_dump((float)$var,(double)$var,(real)$var);
        //临时转换成字符串型
        $var=true;
        var_dump((string)$var);
        //临时转换成布尔类型
        $var='3king';
        var_dump((bool)$var,(boolean)$var);
        //临时转换成空
        $var='hello';
        var_dump((unset)$var);
        //临时转换成数组
        $var=123;
        var_dump((array)$var);
        //临时转换成对象
        $var=12.3;
        var_dump((object)$var);

    通过系统函数完成临时转换

        $var='3king';
        $res=intval($var);
        var_dump($res);//3
        var_dump(floatval($var),doubleval($var));
        var_dump(boolval($var));
        $var=true;
        var_dump(strval($var));

    得到变量的类型 gettype()
    type可能的值为:
    “boolean” (或为“bool”,从 PHP 4.2.0 起)
    “integer” (或为“int”,从 PHP 4.2.0 起)
    “float” (只在 PHP 4.2.0 之后可以使用,对于旧版本中使用的“double”现已停用)
    "string"
    "array"
    "object"
    “null”


    永久转换的例子

        $var=123;
        echo gettype($var);//integer
        echo '<br/>';
        //永久转换settype($var,$type)
        settype($var,'bool');
        var_dump($var);

    通过变量函数库检测变量的类型,is_*

        //检测是否为整型
        $var=0;
        var_dump(
          is_int($var),
          is_integer($var),
          is_long($var)
        );
        //是否为字符串型
        $var='3king';
        var_dump(
          is_string($var)
        );
        //是否是布尔类型
        $var=false;
        var_dump(is_bool($var));
        //是否为标量类型
        $var=123;
        $var=null;
        var_dump(is_scalar($var));
        //是否为null
        $var=null;
        var_dump(is_null($var));
        //是否为数组
        $var=array();
        var_dump(is_array($var));
        //是否是对象
        $var=new StdClass();
        var_dump(is_object($var));
        //是否是资源
        $var=fopen('./test.html','r');
        var_dump(is_resource($var));
        //检测是否为数值型或者是字符串形式的数值
        //123 23.4 '123.34' '23'
        $var=123;
        var_dump(is_numeric($var));

    系统常量

        echo PHP_VERSION;//7.3.4
        echo PHP_OS;//WINNT
        echo PHP_INT_MAX;//...很长

    define(NAME,VALUE):定义常量
    常量一经定义不能改变
    常量默认区分大小写,使用的时候按照定义时的大小写来使用

        define('TEST','this is a test');
        echo TEST;
    
        define('TEST_ARRAY',array('a','b','c'));
        var_dump(TEST_ARRAY);
    
    const关键字定义常量
        const TEST='this is a test';
        echo TEST;
    
        //通过constant来获取常量的值
        echo constant('TEST');
    
        //通过defined()检测常量是否存在
        var_dump(defined('TEST'));
    
        //get_defined_constants():返回的是数组,得到所有已定义的常量,包含系统常量和自定义常量
        print_r(get_defined_constants());

    魔术常量

        echo __LINE__;
        echo __FILE__;
        echo __DIR__;

    $_REQUEST 能接收 get,post 方式传值,它包含$_GET,$_POST,$_COOKIE 三个预定
    义变量的内容,为什么在页面上给$_GET 和$_POST 赋值以后打印$_REQUEST,里面却为
    空?


    原因:$_REQUEST 包含$_GET 和$_POST 的值,必须是通过 get,post 两种方式传过来的
    数据,单独在页面给$_GET 和$_POST 赋值时,没有给$_REQUEST 赋,它代替不了$_GET
    和$_POST


    define 定义数组常量时报错


    原因:数组常量定义是 PHP7 新加的特性,在 7 之前的版本,常量的值仅允许标量和 null。
    标量的类型是 integer, float,string 或者 boolean。所以数组是不允许的,需要将版
    本升级到 7 才能定义数组常量。


    整数支持递增递减运算符
    浮点类型支持递增递减运算符
    布尔类型不支持递增递减运算符
    null只支持递增运算符,不支持递减运算符
    字符串只支持递增运算符,根据ascii码来计算

        $str='a';
        echo ++$str;//b
    
        $str='a1';
        echo ++$str;//a2
    
        $str='a9';
        echo ++$str;//b0
    
        $str='B';
        echo ++$str;// C

    ord($character):得到指定字符的ASCII码值

        $str='a';
        echo ord($str);
        echo '<br/>';//98

    chr($ascii):根据指定ASCII得到对应的字符

        echo chr(98);//b

    字符连接符

        echo 'a'.'b'.'c';//abc
        echo 'a','b','c';//abc
    
        $str1=' hello ';
        $str2=' world ';
        $newStr=$str1,$str2;//报错
        $newStr=$str1.$str2;// hello  world 
        echo $newStr;

    mt_rand($min,$max):产生随机数

        echo mt_rand(1,9);
        echo mt_rand(1000,9999);

    生成四位数的多色验证码

        $code='<span style="color:rgb('.mt_rand(0,255).','.mt_rand(0,255).','.mt_rand(0,255).')">'.mt_rand(1,9).'</span>';
        $code.='<span style="color:rgb('.mt_rand(0,255).','.mt_rand(0,255).','.mt_rand(0,255).')">'.mt_rand(1,9).'</span>';
        $code.='<span style="color:rgb('.mt_rand(0,255).','.mt_rand(0,255).','.mt_rand(0,255).')">'.mt_rand(1,9).'</span>';
        $code.='<span style="color:rgb('.mt_rand(0,255).','.mt_rand(0,255).','.mt_rand(0,255).')">'.mt_rand(1,9).'</span>';
        echo $code;

    比较结合运算符(太空船运算符)
    前面>后面 1
    前面<后面 -1
    前面=后面 0

        var_dump(
            1.5<=>1.5,
            1.5<=>1.2,
            1.5<=>4.6
        );
    
        var_dump(
          'a'<=>'a',
          'c'<=>'a',
          'c'<=>'e'
        );

    NULL合并操作符
    从左到右第一个存在且不为null的操作
    如果全部都是null,就返回null
    php7之后开始有

        var_dump(
          true??'king'??123,
          0??false??null??'hello world',
          $abcdef??'hello world'
        );

    字符串搜索相关
    strpos($string,$search):返回字符串首次出现的位置,位置从0开始;如果没找到返回false
    stripos($string,$search):忽略大小的去搜索
    strrpos($string,$search):返回字符串最后一次出现的位置;如果没找到返回false
    strripos($string,$search):忽略大小写的去搜索最后一次出现的位置

        $str='abcadebf';
        var_dump(strpos($str,'bc')); //1
        var_dump(stripos($str,'B'));//1
        var_dump(strrpos($str,'a'));//3
        var_dump(strripos($str,'A'));//3

    错误抑制符@

        $var=123;
        @settype($var,'king');

    三元运算符相当于缩写的if...else
    exp1?:exp3

        $res=0?:'this is a test';
        var_dump($res);

    max()  min()

        echo max(123,234,35234234);//得到最大值
        echo min(-123,23,5346);//得到最小值

    date($format,$time):格式化日期时间
    Y:4位的年份
    m:2位月份
    d:2位的日
    H:2位的小时
    i:2位的分钟
    s:2位秒数
    w:返回一周内的第几天,0~6(0代表星期日)

    date_default_timezone_set($timezone):设置时区
    date_default_timezone_get():得到当前默认的时区
    time():得到当前的时间戳

        date_default_timezone_set('PRC');//Asia/Shanghai
        echo date("Y年m月d日 H:i:s");//2020年01月09日 15:29:18
        echo date("Y-m-d H:i:s",time());//2020-01-09 15:29:18
        echo date("Y/m/d",time());//2020/01/09
        echo date_default_timezone_get();//PRC

    if语句的另外的形式

        if(true){
        }else{
        }
    
        if(true):
        else:
        endif;
    -----------------------------
        if(true){
        }else if($username=='queen'){
        }else {
        }
    
        if(true):
        elseif(true):
        else:
        endif;

    exit($msg)|die($msg)程序终止执行

        exit;
        die;
        exit("<h1>Game Over ...</h1>");

    for循环

        for($i=1;$i<=3;++$i){
          echo $i;
          echo "
    ";
        }
        echo $i,"
    ";//4
    
        for($j=4;$j<=0;$j++){
          echo 'this is a test<br/>';
        }
        echo $j,"
    ";//没有循环,初始值4
    
        //生成四位数多色验证码
        for($i=0;$i<4;$i++){
          echo '<span style="color:rgb('.mt_rand(0,255).','.mt_rand(0,255).','.mt_rand(0,255).')">'.mt_rand(0,9).'</span>';
        }

    goto跳转

        echo 'starting...';
        goto TEST;
        echo 'this is a test';//不显示,被跳过
    
        TEST://TEST标识符
        echo '跳入TEST';
    
        //goto 不能跳入循环、switch...case 函数和类
        //goto TEST1;//报错
        for($i=1;$i<=5;$i++){
          TEST1:
          echo '跳入循环TEST1';
        }
    
        for($i=1;$i<=5;$i++){
          if($i==3){
            goto TEST2;
          }
        }
    
        TEST2:
        echo '跳出循环TEST2';
  • 相关阅读:
    **没有规则可以创建“XXX”需要的目标“XXX”问题的解决方案
    牛逼博主
    tiny4412 busybox制作根文件系统rootfs nfs 挂载 ubuntu 14.04
    解决 mounting /dev/block/mmcblk0p1 on /sdcard failed
    如何在虚拟机上配置hadoop集群
    数据结构线性表
    a伪类,关于图片
    脱离标准文档流(2)---定位
    脱离标准文档流(1)---浮动
    初窥css---盒子以及盒子扩展
  • 原文地址:https://www.cnblogs.com/chenyingying0/p/12172129.html
Copyright © 2011-2022 走看看