php学习笔记-代码基本语法-day01

news/2024/10/23 5:36:47/

php代码基本语法

PHP(PHP: Hypertext Preprocessor)即“超文本预处理器”,是在服务器端执行的脚本语言,尤其适用于Web开发并可嵌入HTML中。PHP语法学习了C语言,吸纳Java和Perl多个语言的特色发展出自己的特色语法,并根据它们的长项持续改进提升自己,例如java的面向对象编程,该语言当初创建的主要目标是让开发人员快速编写出优质的web网站。PHP同时支持面向对象和面向过程的开发,使用上非常灵活。

1.注释风格

  • // 单行注释
  • /**/ 多行注释
  • # 单行注释(python风格)

php语句以;结束 ,php变量名以$标识, php是一种“弱类型语言”,声明变量或者常量时不需要事先声明其数据类型。

2.数据类型

  • 1.标量数据类型
    • 布尔型 : TRUE | FALSE
    • 整型 : 不包含小数点的实数,其中16进制 以 0x 开头; 8进制 以 0 开头
    • 浮点型 : 含小数点的实数
    • 字符型 : 字符序列,且php中没有对字符型的最大长度进行规定,以单引号''或者双引号""括起来
  • 2.复合数据类型
    • 数组 : php中的数组很灵活,有点类似map的感觉,键值对,而且每个键和值的数据类型,可以是整数,浮点数,字符串。并且它的长度是动态的,可以自由扩充。
    • 对象 : 与Java中的对象概念一致,一个事物就是一个(对象—>类),每个事物都有自己的特征和行为(类的成员变量和方法)
  • 3.特殊数据类型
    • 资源数据类型 : 资源是php提供的一种特殊数据类型,用于表示php的外部资源。(流,数据库连接…)
    • null(NULL) : 用来表示不存在或者不确定的特殊数据类型
  • 4.伪类型
    • php 引入4种伪类型,用来指定一个函数的参数或返回值的数据类型
    • mixed mixed说明函数可以接受(或返回) 不同数据类型的数据
    • number 函数可以接受(或返回) 整型|浮点型数据
    • void void说明函数没有参数或没有返回值
    • callback callback 说明函数可以接受用户自定义的函数作为参数function call_user_func(callable $callback, mixed ...$args): mixed {}

3. 命名规范

其实基本与其他高级语言类似

  • 1.类首字母大写 Student
  • 2.常量全部大写,如果是多个单词则用下划线分隔 ROOT_PATH_FILENAME
  • 3.变量采用驼峰式命名,$studentList (第一个单词首字母小写,其余单词首字母大写)
  • 4.数组 使用xxxs的方式命名,因为数组都是包含多个数据 $nums
  • 5.函数 动词的方式 emmmm,其实也就是见名知意 findXXX() selectXXX() delXX() …

4.常量

常量就是指,在程序运行过程中始终保持不变的值。

常量一旦被定义,常量的值和数据类型就不能再改变。

php常量包括预定义常量和自定义常量

  • 1.预定义常量

预定义常量即php自身提供的一些常量,可以直接在程序中使用

比如 TRUE FALSE NULL 这三个就是最常使用的预定义常量。

  • 2.自定义常量

自定义常量在使用前必须定义声明(貌似所有的高级语言都这样),然后php提供了一个函数专门用来自定义常量。

define(name,value[,bollean case_insensitive])

define()函数的第一个参数为变量的名称,第二个参数为变量的值,第三个参数为该变量是否区分大小写(默认为ture 区分大小写)

    <?phpdefine("ST1","张三");echo ST1;// 不区分大小写 但是在我使用的 7.4 php 已经弃用了这个不区分大小写define("ST2","李四",false);echo ST2;?>

常量必须使用define()函数定义,而且常量名前面不加前缀$,然后只要定义了,就不能再修改它的数据类型和值,也不能销毁。

5.变量

变量是一个临时存储数据的容器,它的值,在运行过程中可以改变,它的数据类型可以是任意一种的数据类型。

变量名必须以 $ 美元符号开头,然后php中的变量是区分大小写的(貌似没有高级语言不区分的).

与传统的高级语言有一点不同,php可以将已定义的变量的值和数据类型进行修改。

  • 1.变量的定义方式
  <?php // 对变量进行重新赋值,其底层与java一样,都是重新改变变量的指向来做的$user1 = "小白";$user1 = "管理员";// 对变量重新赋值,并且修改其数据类型$flag = false;// 我这里使用 var_dump()函数,这个函数可以将参数的数据类型和值都打印出来便与观察var_dump($flag);var_dump($flag); // bool(false)$flag = 1.0; //  float(1)// 可见由于php语言的灵活性,我们可以将其的数据类型改变?>
  • 2.变量的赋值方式

    • 传值赋值

    传值赋值方式,其实就是两个变量共同指向一个值

      <?php $p_age1 = 18;$p_age2 = $p_age1;echo $p_age1; //18echo $p_age2; //18$p_age2 = 22;echo $p_age1;//18echo $p_age2;//22?>
    

    在这里插入图片描述
    在这里插入图片描述

    • 传地址方式(类似C语言的指针)

    使用 & 取地址符号,一瞬间感觉回到了c语言

    <?php$p_age1 = 18;$p_age2 = &$p_age1;$p_age2 = 22;echo $p_age1;// 22echo $p_age2;// 22// 因为是传地址赋值,所以修改 $p_age2 也会将 $p_age1 修改
    ?>
    

在这里插入图片描述

可变变量
tip:这个php中的可变变量类似C语言中的二重指针,二重指针,实际上就是存放指针的地址。 二重指针变量:在指针变量的基础上再往上溯源,它也是一个变量,这个变量的值是它所指向的指针的地址,即(二重指针变量 = 指针的地址).

可变变量:可变变量允许php程序动态的变更一个变量的变量名.

<?php$userAge = "age";$$userAge = 20;echo $age; //20echo $userAge; //ageecho $$userAge; //20 
?>

在这里插入图片描述

6.变量常量常用的函数

函数名作用
String gettype(mixed var)获取并且返回参数的数据类型
void var_dump()打印输出参数的数据类型和值
bool defined(string name)检查常量是否被定义,若定义则返回ture,反之返回false
bool isset(mixed var)检查变量是否被定义,若定义则返回ture,反之返回false
void unset(mixed var)将变量取消定义
boolean is_null(mixed var)检查变量是否为空,若为空则返回ture,反之返回false
boolean empty(mixed var)检查变量是否为空,若为空则返回ture,反之返回false

这里需要稍微注意的就是 isnull()函数和 empty()函数

  • 1.is_null()函数
    is_null()函数对于空值的规定为:
    变量未经定义;变量的值赋为NULL,变量经过unset()函数处理。
  • 2.empty()函数
    empty()函数对于空值的规定为:
    变量字符串为空字符串"",整数0,浮点数0.0,NULL,字符串“0” (这里是由于php的特性,其底层会将字符串"0"转换为整型0) 或者未定义的变量,空数组 都将视为空
    暂时先到这里啦!!!

http://www.ppmy.cn/news/9986.html

相关文章

华为OD机试真题Java_2022-2023-题目0184-获得完美走位

获得完美走位 题目描述 在第一人称射击游戏中,玩家通过键盘的A、S、D、W四个按键控制游戏人物分别向左、向后、向右、向前进行移动,从而完成走位。 假设玩家每按动一次键盘,游戏人物会向某个方向移动一步,如果玩家在操作一定次数的键盘并且各个方向的步数相同时,此时游戏…

spring springboot mockito测试的注解

写这个文章只是想帮自己理解&#xff1a; 测试的时候&#xff0c;注解到底怎么写 首先看你的junit版本 如果您使用的是 Junit 版本 < 5&#xff0c; 则必须使用 RunWith(SpringRunner.class)或 RunWith(MockitoJUnitRunner.class)等等。 如果您使用的是 Junit 版本 5&…

Duboo优雅关闭(附源码分析)

Dubbo优雅关闭 1. 关闭有什么问题 当服务提供方要上线的时候&#xff0c;一般是通过部署系统完成实例重启。在这个过程中&#xff0c;服务提供方的团队并不会事先告诉调用方他们需要操作哪些机器&#xff0c;从而让调用方去事先切走流量。而对调用方来说&#xff0c;它也无法…

深入理解Synchronized

Synchronized 底层原理 Synchronized的语义底层是通过一个 Monitor 的对象来完成&#xff0c;其实wait/notify等方法也依赖于 Monitor 对象&#xff0c;这就是为什么只有在同步的块中&#xff0c;拿到锁之后&#xff0c;才能调用wait/notify等方法&#xff0c;否则会抛出java.…

SQL SELECT TOP, LIMIT, ROWNUM 子句

SQL SELECT TOP 子句 SELECT TOP 子句用于规定要返回的记录的数目。 SELECT TOP 子句对于拥有数千条记录的大型表来说&#xff0c;是非常有用的。 注意:并非所有的数据库系统都支持 SELECT TOP 语句。 MySQL 支持 LIMIT 语句来选取指定的条数数据&#xff0c; Oracle 可以使用…

【C++高阶数据结构】B树、B+树、B*树

&#x1f3c6;个人主页&#xff1a;企鹅不叫的博客 ​ &#x1f308;专栏 C语言初阶和进阶C项目Leetcode刷题初阶数据结构与算法C初阶和进阶《深入理解计算机操作系统》《高质量C/C编程》Linux ⭐️ 博主码云gitee链接&#xff1a;代码仓库地址 ⚡若有帮助可以【关注点赞收藏】…

【算法】【字符串模块】求字符串中不重复的最长子串

目录前言问题介绍解决方案代码编写java语言版本c语言版本c语言版本思考感悟写在最后前言 当前所有算法都使用测试用例运行过&#xff0c;但是不保证100%的测试用例&#xff0c;如果存在问题务必联系批评指正~ 在此感谢左大神让我对算法有了新的感悟认识&#xff01; 问题介绍 …

vim的使用——Linux

这里写目录标题前言(umask)粘滞位file工具的介绍yum工具下载软件的步骤vim模式前言(umask) 上节回顾。 默认权限 普通文件的默认权限是从666开始的。 目录文件的默认权限是从777开始的。 默认权限不是最终权限。 结论&#xff1a;最终权限等于默认权限去掉umask中存在的权限。…