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

news2025/4/17 20:09:03

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 区分大小写)

    <?php
    define("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; //18
       echo $p_age2; //18
       $p_age2 = 22;
       echo $p_age1;//18
       echo $p_age2;//22
      ?>
    

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

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

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

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

在这里插入图片描述

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

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

<?php
	$userAge = "age";
	$$userAge = 20;
	echo $age; //20
	echo $userAge; //age
	echo $$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.coloradmin.cn/o/145550.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一些微信使用小技巧分享

技巧一&#xff1a;检测僵尸粉 微信好友过多&#xff0c;我们可以通过创建群聊来检测好友。点击右上角图标&#xff0c;选择【发起群聊】&#xff0c;勾选需要检测的好友&#xff0c;点击【完成】。能进群的都是朋友关系&#xff0c;不能进群的会删或者拉黑你。不过需要注意的是…

VS2022点云库PCL1.12配置过程中遇到的一些奇葩问题

最近处于换工作的间歇期&#xff0c;原来配置的电脑交公了&#xff0c;各种程序数据都做了搬家。对这些程序重新配置&#xff0c;可以说是一地鸡毛。系统对不上&#xff0c;各个开源库版本一团乱麻&#xff0c;尤其是配置PCL库的时候&#xff0c;遇到了各种奇奇怪怪的问题&…

二十八、Docker (4)

&#x1f33b;&#x1f33b; 目录一、Dockerfile入门1.1 Dockerfile 常用命令1.2 Dockerfile 搭建 jdk 环境1.3 Dockerfile 搭建 tomcat 环境镜像1.4 Dockerfile 创建微服务 java 镜像二、使用Nexus搭建Docker镜像私有仓库2.1 安装 Nexus2.2 访问配置 Nexus2.3 配置 Docker 服务…

自动驾驶助力智慧港口建设,景联文科技提供数据标注服务

“在无人集卡出现以前&#xff0c;岸桥式起重机需要把停靠在岸边的船舶上数百个集装箱全部吊起&#xff0c;放到一旁的集装箱卡车上&#xff0c;运向堆场&#xff0c;等待集装箱卸货后再进行下一次往返工作。为保证工作效率&#xff0c;需要上百位司机驾驶着集卡在港口中来回往…

拉伯证券|磷酸铁锂电池在储能市场的应用有哪些?

时隔四个月&#xff0c;中国有色金属工业协会硅业分会重启硅料报价。本周&#xff0c;单晶复投料成交均价为17.82万元/吨&#xff0c;单晶细密料成交均价为17.62万元/吨。综合其他组织报价数据&#xff0c;硅料已全线跌破20万元/吨&#xff0c;作为对比&#xff0c;上一年10月底…

Java入门知识以及细节(1.3w字笔记)

欢迎来到我的主页&#xff1a;【一只认真写代码的程序猿】 本篇文章收录于专栏【Java入门学习】 如果这篇文章对你有帮助&#xff0c;希望点赞收藏加关注啦~ 目录 Java和C的区别 Java中的运算 Math.random()函数 跳出多重循环的两种break方法 数组中的使用以及Java中的…

windows下图像标注软件Labelme安装及使用教程

文章目录一.Labelme简介二.安装labelme三.使用labelme进行图像标注一.Labelme简介 LabelMe 是一个用于在线图像标注的Javascript标注工具。与传统图像标注工具相比&#xff0c;其优势在于我们可以在任意地方使用该工具。此外&#xff0c;它也可以帮助我们标注图像&#xff0c;…

TCP 三次握手 四次挥手

请描述TCP三次握手和四次挥手&#xff0c;这是非常常考的一道面试题。 大家不要去追求过多的细节&#xff0c;你如果是搜一些文章或者答案的话&#xff0c;它会给你描述的很细。 然后我/你看到会很懵&#xff0c;因为这里面如果讲细了的话&#xff0c;需要很多这种网络请求的相…

Go语言基础2

一、注释 单行注释 // 我是单行注释多行注释 /* 我是多行注释 我是多行注释 我是多行注释 */二、变量 1. var name type (声明变量时将变量的类型放在变量的名称之后) var&#xff0c;声明变量的关键字name&#xff0c;变量的名字type&#xff0c;变量的类型 eg:单个定义…

FFMPEG完美入门资料---003---FFmpeg 架构

3.1 FFmpeg 文件结构 libavformat 主要存放 ffmpeg 支持的 各种编解码器 的实现及 ffmpeg 编解码 功能相关的数 文件简要说明allcodecs.c简单的注册类函数avcodec.h编解码相关结构体定义和函数原型声明dsputil.c限幅数组初始化dsputil.h限幅数组声明imgconvert.c颜色空间转换相…

剑指offer(C++)-JZ63:买卖股票的最好时机(一)

作者&#xff1a;翟天保Steven 版权声明&#xff1a;著作权归作者所有&#xff0c;商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处 题目描述&#xff1a; 假设你有一个数组prices&#xff0c;长度为n&#xff0c;其中prices[i]是股票在第i天的价格&#xff0c;请…

FreeMen正式上线,让工作更自由

“让工作更自由”&#xff0c;开屏页上六个大字宣告着FreeMen正式上线&#xff0c;全新的FreeMen APP也正式登录各大手机应用市场。作为一款专注IT技术者圈子的APP&#xff0c;其上线标志着助力程序员职业道路上向前迈进一大步。 FreeMen相关负责人表示&#xff0c;基本上10个职…

基于java+Springboot操作系统教学交流平台详细设计实现

基于javaSpringboot操作系统教学交流平台详细设计实现 博主介绍&#xff1a;5年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java毕设项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获取源…

【C语言】使用指针时出现的各种错误总结以及处理方法

&#x1f3d6;️作者&#xff1a;malloc不出对象 ⛺专栏&#xff1a;《初识C语言》 &#x1f466;个人简介&#xff1a;一名双非本科院校大二在读的科班编程菜鸟&#xff0c;努力编程只为赶上各位大佬的步伐&#x1f648;&#x1f648; 目录前言一、什么是野指针二、野指针出现…

Redis主从哨兵集群

主从 主从同步原理 1.全量同步 1.从节点刚连接到主节点时&#xff0c;主动请求数据同步 2.主节点判断是否是第一次同步&#xff0c;如果是&#xff0c;就返回主节点的数据版本信息 3.随后&#xff0c;主节点执行bgsave&#xff0c;生成RDB文件&#xff0c;并发送给从节点 4.这…

Java时间类

时间在Java中是两个类 Date 和 Calendar Date类 Date是在Java.util包中的也就是工具包。 测试 输出的是当前的系统时间 修改idea中的注释的颜色&#xff1a; 是date不是data package org.data; import java.util.Date; public class Test { public static void main(…

【Oracle】20230106PLSQL中文不显示,全部为?解决流程

问题&#xff1a;查询的表中有中文数据&#xff0c;全部显示为&#xff1f; 解决途径1&#xff1a;修改注册表以及环境变量&#xff08;改系统变量&#xff01;不要只改用户变量&#xff09; Oracle使用——PLSQL的中文乱码显示全是问号_海蓝树的博客-CSDN博客_plsql无法显示…

上线网站详细介绍(服务器购买-域名申请-SSL证书申请)

文章目录上线之前的准备工作&#xff0c;通俗的来讲&#xff1a;服务器是什么-云服务器购买域名解释-域名备案-域名如何申请①什么是域名&#xff0c;为什么要域名&#xff1f;②为什么非要域名备案和不备案的区别&#xff1f;③自己的主机怎么备案-自己的电脑可以作为服务器吗…

系分架构 - 软件架构设计

个人总结&#xff0c;仅供参考&#xff0c;欢迎加好友一起讨论 文章目录系分&架构 - 软件架构设计考点摘要概念架构的 4 1 视图软件架构风格经典五大架构风格调用/返回风格独立构件风格虚拟机风格仓库风格层次架构风格二层C/S架构三层C/S架构B/S架构混合架构风格闭环控制架…

Linux 软件管理 RPM 管理工具

概念引入 &#xff1a; # 首先提出一个问题&#xff0c;我们在 Linux 操作系统中是如何 安装软件的 &#xff1f;&#xff1f; >>> 在 Linux 系统中&#xff0c;安装软件是有三种方式 >>> 第一种 &#xff1a; RPM 管理工具 第二种 &#xff1a; …