php学习笔记-phpday1

news2024/11/23 18:45:37

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/144522.html

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

相关文章

【自学C++】C++ HelloWorld

C HelloWorld C HelloWorld教程 我们打开 Dev-C 软件&#xff0c;界面如下&#xff1a; 我们选择文件 -> 新建 -> 源代码&#xff0c;如下图所示&#xff1a; 点击源代码之后&#xff0c;此时界面如下图所示&#xff1a; 我们在新建的文件中&#xff0c;输入以下内容&a…

用远见超越未见 | 立足2022,洞见未来之2023十大安全技术趋势

2022年是极不平凡的一年&#xff0c;外部的世界局势逐步恶化&#xff0c;内部的新冠疫情转段迈向新阶段。2022年也是伟大的一年&#xff0c;党的二十大胜利召开。党的二十大报告就“推进国家安全体系和能力现代化&#xff0c;坚决维护国家安全和社会稳定”作出专章部署&#xf…

三万字机器学习项目整理(基础到进阶)

如果你是学生、计算机领域的工作者&#xff0c;我强烈建议你学习、掌握机器学习&#xff0c;我不敢说它是最简单的&#xff08;机器学习的确很简单&#xff09;&#xff0c;但是掌握机器学习一定是性价比最高的。 本文用浅显易懂的语言精准概括了机器学习的相关知识&#xff0…

jQuery(JS库) | 一文带你掌握jQuery的使用

目录 一&#xff1a;开篇基础 1. 为什么使用 jQuery 2. DOM 对象 3. JS对象和 jQuery 对象 4. 获取 jQuery 5. 牛刀小试 6. DOM 对象和 jQuery 对象 二&#xff1a;选择器 1. 基本选择器 2. 表单选择器 三&#xff1a;过滤器 1. 基本过滤器 2. 表单对象属性过滤器…

天津人才引进迁出迁入延期经验分享

由于2022年疫情&#xff0c;集体户口折腾了5个月终于告与段落了&#xff0c;只能说2022年点真得太背了。。。把自己的痛苦经验分享给大家乐乐。。。 迁出找人代办&#xff0c;获得准迁证后&#xff0c;个人证件比准迁证提前将近2天开始邮寄&#xff0c;但最后还比准迁证晚到了1…

做几个链表相关的练习题吧!!

对于链表&#xff0c;笔者在之前就已经有过几篇文章&#xff0c;详细的讲解了&#xff01;感兴趣的各位老铁&#xff0c;请进入博主的主页进行查找&#xff01;https://blog.csdn.net/weixin_64308540/?typeblog言归正传&#xff01;对于链表&#xff0c;光学不做&#xff0c;…

浅谈 Redis 的切片集群

切片集群&#xff0c;也叫分片集群&#xff0c;就是指启动多个 Redis 实例组成一个集群&#xff0c;然后按照一定的规则&#xff0c;把收到的数据划分成多份&#xff0c;每一份用一个实例来保存。回到我们刚刚的场景中&#xff0c;如果把 25GB 的数据平均分成 5 份&#xff08;…

stm32f407VET6 系统学习 day08 SPI 的使用 和 flash 的讲解

1.什么是SPI控制器 SPI 是英语Serial Peripheral interface的缩写&#xff0c;顾名思义就是串行外围设备接 口。是Motorola首先在其MC68HCXX系列处理器上定义的。 SPI&#xff0c;是一种高速的&#xff0c;全双工&#xff0c;同步的通信总线&#xff08;因为带有SCL同步时钟&am…

2023年PMP备考攻略全指南看这里就够了!

PMP考试是一年四次的&#xff0c;一般在3月、6月、9月、12月份考试&#xff08;考试时间一般为周六&#xff09;。 所以如果有想法一定要在这个几个时间点之间备考准备哦。 二&#xff0c;报名流程 一般都是中英文两个官网都报名 1.英文报名 需要在PMI官方网站提交填写申请…

【Linux】软件包管理器yum和编辑器vim

文章目录一、Linux软件包管理器yum1. 什么是软件包2. 查看软件包/安装软件/卸载软件3. 关于rzsz二、Linux编辑器vim1. vim的基本概念2. vim的基本操作3. vim命令模式指令集4. vim底行模式指令集5. vim的配置三、普通用户无法使用sudo的问题一、Linux软件包管理器yum 1. 什么是…

学习周报-20230106

文章目录一 Linux常用系统日志一 常用系统日志二 系统日志优先级三 其他日志文件二 DNS域名解析一 定义二 配置文件三 DNS解析流程四 总结三 vim编辑器的三种模式四 Linux虚拟机克隆后网卡名从eth0变成eth1一 系统环境二 问题发现三 解决过程五 在rhel6系统部署iscsi远程存储一…

项目资源规划前需要了解的基础知识

项目资源规划是优化各项目资源使用的一个可靠方法。你根据团队成员的技能、能力和对项目的适应性将任务分配给他们&#xff0c;以实现最大效率。 换句话说&#xff0c;规划项目资源的过程可以帮助你回答项目经理可能提出的两个最重要的问题。 ● 如何确保在团队不过度劳累的情…

零基础学MySQL(一)-- 启动与创建数据库及对数据库的备份与恢复

&#x1f9e7;启动与创建数据库及对数据库的备份与恢复&#x1f957;一、启动与连接数据库1️⃣启动数据库2️⃣连接数据库&#x1f96b;二、数据库的基本介绍1️⃣数据库的三层结构2️⃣数据在数据库中的存储方式3️⃣SQL 语句分类&#x1f371;三、对数据库的操作1️⃣创建数…

Python 读取千万级数据自动写入 MySQL 数据库

Python 读取数据自动写入 MySQL 数据库&#xff0c;这个需求在工作中是非常普遍的&#xff0c;主要涉及到 python 操作数据库&#xff0c;读写更新等&#xff0c;数据库可能是 mongodb、 es&#xff0c;他们的处理思路都是相似的&#xff0c;只需要将操作数据库的语法更换即可。…

react+openlayers实现点要素的创建及其点上overlay叠加层的实现

前言 网上关于react或者vue3与openlayers结合的案例非常少&#xff0c;今天由于工作中用到&#xff0c;特记录下笔记&#xff0c;后面将持续更新react和vue3与ol的结合案例&#xff08;新手勿喷&#xff09;。 1.地图上要素&#xff08;点线面&#xff09;的创建 以点要素为…

C进阶:数据在内存中的存储

深度剖析数据在内存中的存储C进阶:数据在内存中的存储深度剖析数据在内存中的存储数据类型介绍类型的基本归类整型家族浮点数家族&#xff1a;构造类型&#xff1a;指针类型&#xff1a;空类型&#xff1a;整型在内存中的存储原码、反码、补码原码反码补码的相互转换整型数据的…

基于WebRtc的web播放大华海康rtsp视频流(延迟一秒以内)

基于WebRtc的web播放大华海康rtsp视频流&#xff08;延迟一秒以内&#xff09;WebRtc下载WebRtc运行Rtc测试Rtc使用html播放需要在vue上播放的可以看下一篇文章WebRtc你好&#xff01; 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可…

谷粒学院——第十七章、课程微信支付

需求分析 需要实现的功能 需要提供的接口 后端实现 创建数据库表 创建 service_order 模块 引入依赖 <dependencies><dependency><groupId>com.github.wxpay</groupId><artifactId>wxpay-sdk</artifactId><version>0.0.3</ve…

elasticsearch 7.9.3知识归纳整理(六)之 kibana图形化操作es指南

kibana图形化操作es指南 一、创建用户&#xff0c;角色和权限指引 1.创建角色 1.1 在kibana首页点击Manage and Administer the Elastic Stack下的securitys settings 1.2 点击左侧Security 下的roles 1.3 点击右上角的create role 1.4 输入角色名字 完成后点击下面的create…

华为手表开发:WATCH 3 Pro(3)创建项目以及运行完整流程

华为手表开发&#xff1a;WATCH 3 Pro&#xff08;3&#xff09;创建项目以及运行完整流程初环境与设备创建项目创建项目入口配置项目运行项目报错需要在 Appgallery Connect , 创建项目&#xff0c;然后在项目中登录账号就可以了登录后的最终结果再次点击运行&#xff0c;我们…