加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHP基础语法

发布时间:2020-12-13 20:55:21 所属栏目:PHP教程 来源:网络整理
导读:对于字符串中的指定字符做增删改查操作 $string ='abcdef' ; // 查找 echo $string {0 }; echo 'br/' 注意,修改的时候只能一个字符替换一个字符 $string {1}='z' $string ; azcdef ; $string {4}='!' azcd!f echo 'hr/' $string ='abc' $string {0}='hello'

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

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

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

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

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


?

临时转换

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

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

    $res=intval($res);3
    var_dump(floatval($var),doubleval());
    var_dump(boolval());
    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”


?

永久转换的例子

    echo gettype(integer
    永久转换settype($var,$type)
    settype($var);

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

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

系统常量

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

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

    define('TEST','this is a test'echo TEST;

    define('TEST_ARRAY',1)">array('a','b','c'(TEST_ARRAY);

const关键字定义常量
    const TEST='this is a test'通过constant来获取常量的值
    constant('TEST');

    通过defined()检测常量是否存在
    defined('TEST'));

    get_defined_constants():返回的是数组,得到所有已定义的常量,包含系统常量和自定义常量
    print_r(get_defined_constants());

魔术常量

    __LINE____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'a2

    $str='a9'b0

    $str='B' C

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

    ord($strecho '<br/>';98

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

    chr(98);b

字符连接符

    echo 'a'.'b'.'c';abc
    echo 'a','c';abc

    $str1=' hello '$str2=' world '$newStr=$str1,1)">$str2;报错
    $str1. hello  world 
    $newStr;

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

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

生成四位数的多色验证码

    $code='<span style="color:rgb('.mt_rand(0,255).','.$code.='<span style="color:rgb('.$code;

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

    (
        1.5<=>1.5,1.5<=>1.2,1.5<=>4.6
    );

    (
      'a'<=>'a','c'<=>'a','c'<=>'e'
    );

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

    true??'king'??123,0??false??null??'hello world',1)">$abcdef??'hello world'
    );

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

    $str='abcadebf'strpos($str,'bc')); 1
    stripos(strrpos(strripos(3

错误抑制符@

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

max()? min()

    max(123,234,35234234);得到最大值
    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
    date("Y年m月d日 H:i:s");2020年01月09日 15:29:18
    date("Y-m-d H:i:s",1)">time());2020-01-09 15:29:18
    date("Y/m/d",1)">2020/01/09
    echo date_default_timezone_get();PRC

if语句的另外的形式

    if(){
    }else{
    }

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

    elseif(endif;

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

    exitdieexit("<h1>Game Over ...</h1>");

for循环

    for($i=1;$i<=3;++$i){
      ;
      echo "n";
    }
    $i,"n";4

    $j=4;$j<=0;$j++echo 'this is a test<br/>'$j,1)">没有循环,初始值4

    //生成四位数多色验证码
    $i=0;$i<4;$i++echo '<span style="color:rgb('.;
    }

goto跳转

    echo 'starting...';
    goto TEST;
    echo 'this is a test';不显示,被跳过

    TEST:TEST标识符
    echo '跳入TEST';

    goto 不能跳入循环、switch...case 函数和类
    //goto TEST1;//报错
    $i<=5;){
      TEST1:
      echo '跳入循环TEST1';
    }

    $i==3){
        goto TEST2;
      }
    }

    TEST2:
    echo '跳出循环TEST2';

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读