• PHP学习之路——基本语法


    phpinfo是一个函数(功能),这个函数(功能)会显示一个当前电脑(服务器)的详细的PHP信息;
    我们写完一段代码,就需要在后面加分号(;);
    php的代码部份全部要用半角的英文、很多人容易写成全角的英文和符号造成PHP代码报错。
    PHP中的变量也是如此。不过有几个特点:必须要以 开始。如变量 x 必须要写成 开始。如变量x必须要写成 开始。如变量x必须要写成x;
    //和#表示单行注释,#用的较少
    /* … */ 多行注释
    32位计算机一次运算处理的最大范围为-2(32)至2(32)-1。即-10000…()到011111…(正数再加一符号位就变负数了)
    正数的补码和反码就等于原码,负数的补码:先求绝对值得原码,然后求反码,然后末位加一;
    1000,0000,0000,0000=-32768,最高位1就代表负数;

    字界符声明:
    1).在变量后面的等号写三个小于号(<<<)。
    2).然后在<<<后面写上字符(建议英文大写字符)。如下例中的:ABC
    3).然后换行写上任意想写的字符
    4).写完后,顶行。在行最开始处,再写上<<<后面的字符和分号。如下例中的:ABC;
    在这里插入图片描述
    PHP中单引号和双引号的区别(面试重点):
    1.双引号解析变量,但是单引号不解析变量。
    2.在双引号里面插入变量,变量后面如果有英文或中文字符,它会把这个字符和变量拼接起来,视为一整个变量。一定要在变 量后面接上特殊字符,例如空格等分开。
    3.如果在双引号里面插变量的时候,后面不想有空格,可以拿大括号将变量包起来。
    4.双引号解析转义字符,单引号不解析转义字符。但,单引号能解析’ 和\;
    5.单引号效率高于双引号,尽可能使用单引号;
    6.双号和单引号可以互插!!!双引号当中插入单引号,单引号当中插入变量,这个变量会被解析。
    7.神奇的字符串拼接胶水——(.)点,用来拼接字符串;
    8. 我们将定界符声明字符串视为双引号一样的功能来看待。

    var_dump() 是一个函数。向括号()中间插入变量。这个函数,会打印出来数据类型,还会对应显示变量的长度和值。
    gettype(传入一个变量) 能够获得变量的类型;

    主要有以下三空情况会产生空(null)类型:
    1.通过变量赋值明确指定为变量的值为NULL;
    2.一个变量没有给任何值;
    3.使用函数unset()将变量销毁掉;

    empty()可以向括号中间传入一个变量。这个变量的值如果为false或者为null的话,返回true;
    isset()可以向括号中间传入一个或者多个变量,变量与变量间用逗号分开。只要有有一个变量为null,则返回false。否则,则返回true。
    unset()这个函数的功能是毁掉变量。unset(变量)括号中间插入想要毁掉的变量名,这个变量就会被毁掉。

    数组声明:$shu = array(1,2,3);

    is_int ()是否为整型
    is_bool ()是否为布尔
    is_float ()是否是浮点
    is_string ()是否是字符串
    is_array ()是否是数组
    is_object ()是否是对象
    is_null ()是否为空
    is_resource ()是否为资源
    is_scalar ()是否为标量
    is_numeric ()是否为数值类型
    is_callable ()是否为函数

    echo 不是函数,是基本语法

    PHP在PHP 5.x阶段都是完全的弱类型的编程语言。所谓弱类型,就是在声明变量的时候,不需要指定变量的类型。我要声明一个整型的变量,我不用在前面非得写上类型,再写变量。
    PHP 7 的性能有很大的提高。实际测试的结果,PHP 7的性能与PHP5.6相比,提升了性能接近200%。在PHP 7 中有些地方,我们可以强制指定类型,也可以不用强制指定类型来声明变量。

    强制类型转换有三种方式:
    1.用后面的三个函数可以完成类型转换,intval()、floatval()、strval()
    2.变量前加上()里面写上类型,将它转换后赋值给其他变量
    3.settype(变量,类型) 直接改变量本身, settype(变量,‘null’); 等价于 unset()一个变量;

    知道对象是一个复合类型(所谓复合类型:就是在一个类型中可以同时存入字符串、浮点、整型、布尔等), 对象的英文叫object,var_dump一个变量的时候看到的类型为object的,这个变量就是对象类型

    define(常量名,常量值)----define(‘MY_NAME’,‘PHP中文网’);
    注:
    1.常量值只能为上一章中我们讲到的标量。
    2.常量名可以小写,但是通常大写
    3.常量名可以不加引号,但是通常加上引号。
    4.在字符串中调用常量的时候,必须在引号外面
    5.常量名建议只用字母和下划线
    defined(常量)----功能:向函数的括号后面传入常量,如果常量定义了就返回true,否则返回false

    常见的常量:
    LINE 当前所在的行
    FILE 当前文件在服务器的路径
    FUNCTIOIN 当前函数名
    CLASS 当前类名
    METHOD 当前成员方法名
    PHP_OS PHP运行的操作系统
    PHP_VERSION 当前PHP的版本
    TRAIT Trait 的名字,php5.4新加
    DIR 文件所在的目录
    NAMESPACE 当前命名空间的名称(区分大小写)

    可变变量,这个词解释的太过于高大上。看起来很有“bigger”。它还有一个叫法,叫作变量的变量。
    $shu = ‘biao’;
    b i a o = ′ 鼠 标 ′ ; 那么, biao = '鼠标'; 那么, biao=;那么,$shu = 鼠标;

    外部变量
    $_COOKIE 得到会话控制中cookie传值
    $_SESSION 得到会话控制中session的值
    $_FILES 得到文件上传的结果
    $_GET 得到get传值的结果
    $_POST 得到post传值的结果
    $_REQUEST 即能得到get的传值结果,也能得到Post传值的结果
    请再记一句话:以上这些变量全是超全局的。(以后讲解超全局的含义)。

    常用的环境变量的键名和值对应的意思
    键名 含义
    $_SERVER[“REQUEST_METHOD”] 请求当前PHP页面的方法
    $_SERVER[“REQUEST_URI”] 请求的URI
    $_SERVER[“SERVER_SOFTWARE”] 用的是哪一种服务器
    $_SERVER[“REMOTE_ADDR”] 客户的IP地址
    $_SERVER[“SERVER_ADDR”] 当前服务器的IP地址
    $_SERVER[“SCRIPT_FILENAME”] 主前请求文件的路径
    $_SERVER[“HTTP_USER_AGENT”] 当前访问这个网址的电脑和浏览器的情况
    $_SERVER[“HTTP_REFERER”] 上级来源(用户从哪个地址进入当前网页的)
    $_SERVER[“REQUEST_TIME”] 当前的时间

    PHP支持变量引用:KaTeX parse error: Expected 'EOF', got '&' at position 7: bar = &̲fo;

    ===(三个等号,我们说他还有一个名字是判断类型等于,他会判断变量的类型是否一致)。而 x 为整型的 5. x为整型的5. x为整型的5.y为字符串类型的5.类型,而上面一段代码,是两个等号不判断类型。

    exit 的意思是指在此处停止运行,退出。后面的PHP代码不再执行了。它有两种用法:
    1,直接exit; 就是直接退出
    2,exit(‘提示内容’),退出的时候还给出一段提示内容

    特殊符号使用:
    符号 说明
    $x? 真代码段:假代码段 判断是否为真假 ? 真情况 : 假情况;
    ``(反引号) 反引号中间插代命令,执行系统命令,等价于shell_exec函数
    @ 单行抑制错误,把这一行的错误不让它显示出来了,效率低不建议使用
    => 数组下标访问符
    -> 对象访问符
    instanceof 判断某个对象是否来自某个类,如果是的返回true,如果不是返回false

    年份能被4整除,但是不能被100整除。 或者能被400整除,即为闰年,其他情况全为平年

    函数名与变量命名规则一样,但是不同的是:函数名不区分大小写(意思就是func和FUNC是同一个函数)
    函数后如果有默认值和无默认值的参数,通常把无默认值的参数写在最前面;
    function plusx2($foo , KaTeX parse error: Expected '}', got 'EOF' at end of input: bar=10){result = ( f o o + foo+ foo+bar)*2; return $result;}

    回调函数:在一个调数里面,再传入一个函数名,将函数名加上()括号。识为变量函数,配合执行。准许调用这个函数的时候,还可以传入一个函数配合、协助进行处理。

    变量函数:可变函数仅仅是可变变量的一个变种、变形表达。function demo(){echo ‘天王盖地虎’;} $fu = ‘demo’; $fu();

    匿名函数:没有名字的函数。第一种用法,直接把赋数赋值给变量,调用变量即为调用函数。 g r e e t = f u n c t i o n ( greet = function( greet=function(name){ echo $name.‘,你好’;}; $greet(‘明天’); 第二种用法,回调式的匿名函数,woziji(20,30,function( $foo , KaTeX parse error: Expected '}', got 'EOF' at end of input: bar){result = ( f o o + foo+ foo+bar)*2;return $result;});

    内部函数(函数内部定义函数):外部函数调用两次会报错,如果不调外部函数无法执行内部函数

    全局变量: 变量名是等价于 变量名是等价于 变量名是等价于GLOBALS[‘变量名’] 。所有的变量都放到了 G L O B A L S 里面了。而 GLOBALS里面了。而 GLOBALS里面了。而GLOBALS也是全局的。
    global $变量1[,变量2,…变量n] 也可以定义出全局变量;

    使用函数的重点是三块:

    1.了解函数的功能,特别是常用函数的功能
    
    2.了解函数的参数
    
    3.了解函数的返回值
    
    • 1
    • 2
    • 3
    • 4
    • 5

    我们针对上面的三块,讲解6个函数,这6个函数,概况了函数的基本用法的全部注意事项:
    1.直接返回布尔型,如bool copy ()
    2.带有MIXED参数的函数如何调用。Mixed表示任何类型的数据。如Array_unshift()
    3.参数中带有&符的参数,一定要传一个变量做为参数。函数里面改变了他的值。
    4.带有[]的参数,表示可选项。
    5.带有…的参数,表示可以传任意多个参数。
    6.带有callback的参数,表示回调函数。需要传一个函数进来。Array_map()
    7.函数支持的版本你要了解

    copy()函数:返回bool值的,通常为操作是否成功、验证是否通过、检查是否正确等。
    这个函数的功能为: 拷备一个文件
    返回值为为: bool型值,就是成功返回true,失败返回false
    参数为: 两个字符串的值,一个是copy的源文件,一个为目标文件。第三个参数可选的,不常用,我们不管它。

    Array_unshift()
    int array_unshift ( array &$array , mixed $value1 [, mixed $… ] )
    功能: 操作一个数组,向数组中之前插入其他类型的参数。
    返回值: int 类型,可能就是插入成功最后的个数
    参数: 第一个参数为&符,也就是在操作的过程中,改变了第一个参数的值。引用传参。也就是操作这个数组,向这个数组中传入参数。会直接改变这个数组的值。
    第二个参数为mixed,因为数组可以存入多个不同的类型.mixed是指混合的意思。因此,mixed是指可传入任意类型
    第三个数数加了中括号,我们所有遇到中括号的。都是指后面的参数可传,也可以不传。
    第四,最后还看到了三个…(省略号)。代表可以传入任意多个参数。

    strtoupper()字母小写转大写

    回调函数案例
    在这里插入图片描述

    phpinfo()看一下你当前的版本。有的时候可能是因为你的版本太低,或者你所在的版本中没有这个函数,会提示函数不存在。

    有require、require_once、include、include- once四种方法包含一个文件
    函数 包含失败 特点
    Inlcude 返回一条警告 文件继续向下执行。通常用于动态包含
    Require 一个致命的错 代码就不会继续向下执行。通常包含极为重要的文件,整个代码甭想执行
    Include_once 返回一条警告 除了原有include的功能以外,它还会做once检测,如果文件曾经已经被被包含过,不再包含
    Require_once 一个致命的错 除了原的功能一外,会做一次once检测,防止文件反复被包含

    常用的数学函数:
    函数名 描述 实例 输入 输出
    abs() 求绝对值 a b s = a b s ( − 4.2 ) ; / / 4.2 数字绝对值数字 c e i l ( ) 进一法取整 e c h o c e i l ( 9.999 ) ; / / 10 浮点数进一取整 f l o o r ( ) 舍去法取整 e c h o f l o o r ( 9.999 ) ; / / 9 浮点数直接舍去小数部分 f m o d ( ) 浮点数取余 " abs = abs(-4.2); //4.2 数字 绝对值数字 ceil() 进一法取整 echo ceil(9.999); // 10 浮点数 进一取整 floor() 舍去法取整 echo floor(9.999); // 9 浮点数 直接舍去小数部分 fmod() 浮点数取余 " abs=abs(4.2);//4.2数字绝对值数字ceil()进一法取整echoceil(9.999);//10浮点数进一取整floor()舍去法取整echofloor(9.999);//9浮点数直接舍去小数部分fmod()浮点数取余"x = 5.7; y = 1.3 ; y = 1.3; y=1.3;r = fmod($x, $y);// $r equals 0.5, because 4 * 1.3 + 0.5 = 5.7 " 两个浮点数,x>y 浮点余数
    pow() 返回数的n次方 echo pow(-1, 20); // 1 基础数 n次方 乘方值
    round() 浮点数四舍五入 echo round(1.95583, 2);// 1.96 一个数值 保留小数点后多少位,默认为0 舍入后的结果
    sqrt() 求平方根 echo sqrt(9); //3 被开方的数 平方根
    max() 求最大值 “echo max(1, 3, 5, 6, 7); // 7 echo max(array(2, 4, 5)); // 5” 多个数字或数组 返回其中的最大值
    min() 求最小值 min 多个数字或数组 返回其中的最小值
    mt_rand() 更好的随机数 echo mt_rand(0,9);//n 最小/最大,随机数 随机返回范围内的值
    rand() 随机数 echo rand() 最小/最大,随机数 随机返回范围内的值
    pi() 获取圆周率值 echo pi(); // 3.1415926535898 无 获取圆周率

    设置时区的函数为:
    1).date_default_timezone_get()
    2).date_default_timezone_set()
    //定义一下时区常量,以后你可以放到配置文件里
    define(‘TIME_ZONE’,‘Asia/shanghai’);
    //执行函数
    date_default_timezone_set(TIME_ZONE);
    echo date(‘Y-m-d H:i:s’); // 2022-08-05 11:47:53

    time()获取当前的unix时间戳(电脑本身不认识时间,我们在电脑里面设置一个时间方便运算。于是我们规定了一种计算方式,unix时间戳。
    从Unix纪元(1970 年 1月1日零时)开始到一个时间经过的秒数。);

    echo date(‘Y年m月d日’); // 2022年08月05日,很神奇!Y m d,还有H i s
    date函数用于将一个时间进行格式化输出,以方便时间的显示或存储。其语法格式如下:
    string date ( string $forrnat [, int $tirnestamp] )
    在参数列表中:
    t i m e s t a m p 是一个时间戳,函数将这个时间戳按 timestamp是一个时间戳,函数将这个时间戳按 timestamp是一个时间戳,函数将这个时间戳按format规定的格式输出。
    如果$timestamp没有输入值,则默认为当前的时间。
    $format是一个时间输出格式的字符串,需要使用规定的字符构造输出格式。
    date函数的格式参数表:
    字符 说明 返回值
    d 月份中的第几天,有前导零的2 位数字 01 到31
    D 英文星期几,3个字母 Mon到Sun
    j 月份中的第几天,没有前导零 1 到31
    l(字母) 英文星期几 Sunday到 Saturday
    N 1格式数字表示的星期 1(表示星期一)到7(表示星期天)
    S 每月天数后面的英文后缀,2个字符 st,nd,rd或者th。可以和jg一起用
    w 星期中的第几天,数字表示 0(表示星期天)到 6(表示星期六)
    z 一年中的第几天 0到366
    W 年份中的第几周,每周从星期一开始 42(当年的第42周)
    F 月份,完整的文本格式 January 到 December
    m 数字表示月份,有前导零 01 到 12
    M 3个字母缩写表示的月份 Jan 到Dec
    n 数字表示月份,没有前导零 1 到 12
    t 给定月份所应有的天数 28 到 31
    L 是否为闰年 如果是闰年为1,否则为o
    o 格式年份数字 例如2007
    Y 4 位数字完整表示年份 例如1999或2008
    y 2 位数字表示的年份 例如99或08
    a 小写的上午和下午值 am或pm
    A 大写的上午和下午值 AM或PM
    g 小时,12小时格式,没有前导零 1到12
    G 小时,24小时格式,没有前导零 0 到 23
    i 有前导零的分钟数 00 到 59
    s 秒数,有前导零 00到59
    e 时区标识
    U 从Unix纪元开始至今的秒数 长整型数字

    getdate用来获取当前系统的时间,或者获得一个时间戳的具体含义。时间戳是一个长整数,表示getdate的语法格式如下所示。
    array getdate ([ int $timestamp = time() ] )
    函数的返回值是一个根据timestamp得到的包含有时间信息的数组。如果没有参数,则会返回当前的时间。getdate返回的数组,键名包括时间和日期的完整信息。
    键名 说明 返回值
    secnods 秒 数字0到 59
    minutes 分钟 数字0到59
    hours 小时 数字 0到 23
    mday 月份中第几天 数字 1到 31
    wday 星期中第几天 数字0(表示星期天)到6(表示星期六)
    mon 月份 数字 1 到 12
    year 年 4 位数字表示的完整年份
    yday 一年中第几天 数字0到365
    weekday 星期几的英文 Sunday到 Saturday
    month 月份的英文 January 到 December
    0 自从Unix纪元开始的秒数 长整型数字

    print_r可以输出一个数组中所有的键名与值;

    bool checkdate ( int $month , int $day , int $year );如果是有效的时间就返回真,如果不是有效的时间就返回假。例如2011年没有2月29日。

    int mktime (int $hour [, int $minute [, int $second [, int $month [, int d a y [ . i n t day [. int day[.intyear [, int $.is_dstl.l } ] ] 31 )
    mktime()函数可以对一个日期和时间获得一个本地化时间戳;

    int strtotime ( string $time [, int $now = time() ] )
    它能将将英文文本的日期时间描述解析为 Unix 时间戳。传入一个字符串的时间,
    //下一个星期四
    echo strtotime(“next Thursday”);

    mixed microtime ([ bool $get_as_float ] )
    microtime()这个函数,能够返回当前 Unix 时间戳和微秒数(精度特别高)。

    中文主要用的是GBK和utf-8两种编码格式。
    GBK和utf-8是两个不同的编码委员会对于汉字进行的编码的标准。
    他们规定GBK是双字节,也就是一个汉字占用2Bytes。
    utf-8是三字节,一个汉字占用三个字节长度的存储空间。

  • 相关阅读:
    GPT-3.5发布:大型语言模型的进化与挑战
    现在完成进行时习题
    Python list列表修改元素
    sql表的相关操作
    DNS域名解析
    P2311 loidc,想想看
    【牛客网】斐波那契数列
    linux两块硬盘挂载同一个目录
    Django REST framework API版本管理【通过GET参数传递】
    Java面试题之Java集合面试题 50道(带答案)
  • 原文地址:https://blog.csdn.net/qq_41306849/article/details/126129351