PHP 变量

news/2024/2/27 18:38:21

变量

变量的声明、使用、释放

变量定义

  • 形式

    $ + 变量名;
    
  • 严格区分大小写

    $name;
    $Name;
    $NAME
    //三个变量不是同一个变量
    
  • 字母、数字、下划线组成,不能以数字开头,不能包含其他字符(空白字符、特殊字符)

  • 驼峰式命名法、下划线式命名法

    $first_name;
    $firstName;
    $FirstName;
    
  • 标识符(关键字)尽量不作为变量名

变量的赋值、使用

  • echo 输出字符串

    <?php
    $username="gjl";
    echo $username;//在网页输出 gjl
    ?>
    

变量的释放

  • unset()函数

    unset($变量名);

    <?php
    $username="gjl";
    unset($username);
    echo $username;//报错Notice: Undefined variable: username in E:\phpstudy\WWW\test.php on line 4
    //未定义变量
    ?>
    

可变变量

  • 可变变量:

    一个变量的名字可以动态设置和使用

    也是 php 中变量覆盖漏洞的原因之一

    定义:

    $$
    
  • 使用举例

    <?php
    $username="gjl";
    $gjl="GuoJialiang";
    echo $$username;
    //输出 GuoJialiang
    //$($username)
    ?>
    
  • 应用

    <?php
    $username="gjl";
    $gjl="GuoJialiang";
    $$username="liang";
    echo $gjl;
    //输出 liang
    ?>
    

变量类型

  • 具有相同类型的数据才能相互操作

输出变量类型

  • 将变量类型输出使用函数 var_dump()

    <?php
    $name = "ZhangSan";
    var_dump($name);
    //输出 string(8) "ZhangSan"
    //长度为8的字符串“ZhangSan”
    ?>
    
    <?php
    $sex = true;
    var_dump($sex);
    $age = 24;
    var_dump($age);
    $score = 59.9;
    var_dump($score);//输出 bool(true) int(24) float(59.9) 
    ?>
    

bool

  • true/false

    进行 if 判断的时,候如果表达式不是布尔类型的值,会自动进行类型转换,将其它类型的值转换成布尔值,以下值被认为是false,其他大部分的值则被认为是true

    bool(false)        // $flag = 
    int(0)             // 0
    float(0)           // 0.0
    string(0)""        // ""
    string(1)"0"       // "0"
    array(0){}         // array()
    NULL               // NULL
    

int

  • 整型,存储整数

    $age = 24;
    var_dump($age);
    // int(21)
    

float

  • 浮点型,包含小数的数

    $score = 59.9;
    var_dump($score);
    // float(59.9)
    

string

  • 字符串,可以使用单引号、双引号、定界符三种方法进行定义
单引号
  • 单引号定义的字符串不能再包含单引号,如果必须使用单引号则需要用反斜杠 \ 进行转义 \'

    <?php
    $welcome = 'welcome \'ZhangSan\'';
    echo $welcome;
    //输出 welcome 'ZhangSan'
    ?>
    
  • php 不会解析单引号中的变量

    <?php
    $name = 'zhangSan';
    $msg = 'welcome $name';
    echo $msg;
    //输出 welcome $name
    ?>
    
双引号
  • 可以包含单引号,无须转义,但包含双引号时需要转义

    php 会解析双引号间的变量

    <?php
    $name = "zhangSan";
    $msg = "welcome $name";
    echo $msg;
    //输出 welcome zhangSan
    ?>
    
  • 双引号中要解析的变量通常要用 {} 括起来

    <?php
    $name = "zhangSan";
    $msg = "welcome {$name}";
    echo $msg;
    //输出 welcome zhangSan
    ?>
    
定界符
  • 使用情景

    当需要定义大段字符串时,并且该字符串出现大量特殊字符(包括反引号、双引号等)

  • 定界符定义字符串中的单双引号、大部分特殊字符不需要转义

  • <<< 标志 表示定界符开始,同样的标志;为结束标识符,定界符结束要顶格,分号之后的此行不可有任何字符(包括空字符)

  • 定界符中的标志建议使用纯大写字母

  • 定界符中的 $ 同样会被识别为变量,变量名要用 {} 括起来

    <?php$name = "gjl";
    $msg = <<<GJL
    <h1>My Name is <span style = "color:pink">{$name}</span>!</h1>
    <script>console.log( 'This message is from info.php! ")
    </script>
    GJL;
    //若结束符后输入任何字符(包括空字符)则会报错Parse error: syntax error, unexpected $end
    echo $msg;
    ?>
    

    输出效果

    image-20231020095700962

字符串拼接
  • 在php中 . 表示拼接

    $a.$b

    <?php
    $name = "zhangSan";
    $message = "welcome,";
    echo $message.$name;
    //输出 welcome,zhangSan
    ?>
    

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

相关文章

电力系统规划学习笔记(长期更新)

经过三年的努力&#xff0c;笔者总算在9月29日上岸了。上岸后&#xff0c;笔者还是决定继续给自己的博客填坑&#xff08;挖新坑 &#xff09;。今天开始更新自己对于研究生阶段研究方向——电力系统规划的学习笔记&#xff0c;希望能对csdn上友友们以后的学习有所帮助。 第0章…

【每周一测】Java阶段二第四周学习

目录 1、request中的getParameter(String name)方法的功能是 2、request中的getParameter(String name)方法的功能是 3、spring创建bean对象没有以下哪个方式 4、spring依赖注入中没有以下哪个方式 5、RequestParam、RequestBody、PathVariable的应用场景及区别 6、Cooki…

小团队之间有哪些好用免费的多人协同办公软件

在小团队协作中&#xff0c;选择适合的多人协同办公软件是提高工作效率和团队协作的重要一环。幸运的是&#xff0c;市场上有许多大多数功能都免费的多人协同办公软件&#xff0c;为小团队提供了强大的协作功能和便捷的工作环境。 在本文中&#xff0c;我将根据自己多年的在线…

【JavaEE初阶】 线程池详解与实现

文章目录 &#x1f334;线程池的概念&#x1f384;标准库中的线程池&#x1f340;ThreadPoolExecutor 类&#x1f6a9;corePoolSize与maximumPoolSize&#x1f6a9;keepAliveTime&#x1f6a9;ThreadFactory&#x1f6a9;workQueue&#x1f6a9;RejectedExecutionHandler handl…

【网络空间实战攻防能力训练】DHCP欺骗

注意!!!!! 本实验方法一定不要用来攻击公网的服务器,仅能在自己的虚拟机里进行操作!不然可能构成违法行为,大家一定注意! DHCP欺骗 0x01 实验环境搭建0x02 部署DHCP服务器1、配置Windows Server 20162、在Windows 2016 Server上添加DHCP服务器3、设置Kali Linux与Wind…

常用conda命令和虚拟环境

深度学习前置操作 文章目录 深度学习前置操作虚拟环境常用命令 虚拟环境 virtualenv是一个用于创建和管理虚拟环境的模块&#xff0c;其实质上就是一个工具&#xff0c;可用于分隔不同的python虚拟环境&#xff0c;而用户在这一个个独立的虚拟环境中&#xff0c;可以创建和管理…

股神(dp或贪心)

Description 2020 年 Quasrain 通过炒股赚了一些钱&#xff0c;但是 2021 年又亏了回去。 站在天台上的 Quasrain 开始幻想一个美好世界。 在那个世界 Quasrain 可以预知股票未来 n天的价格&#xff0c;股票每天的涨跌都不会超过 10%。 在第 0 天 Quasrain 拥有一单位金币&…

【驱动开发】创建设备节点、ioctl函数的使用

一、控制三盏灯的亮灭 头文件&#xff1a; #ifndef __HEAD_H__ #define __HEAD_H__ typedef struct{unsigned int MODER;unsigned int OTYPER;unsigned int OSPEEDR;unsigned int PUPDR;unsigned int IDR;unsigned int ODR; }gpio_t; #define PHY_LED1_ADDR 0X50006000 #def…

数字孪生智慧建筑可视化系统,提高施工效率和建造质量

随着科技的不断进步和数字化的快速发展&#xff0c;数字孪生成为了建筑行业的一个重要的概念&#xff0c;被广泛应用于智能化建筑的开发与管理中。数字孪生是将现实世界的实体与数字世界的虚拟模型进行连接和同步&#xff0c;从而实现实时的数据交互和模拟仿真。数字孪生在建筑…

‘conda‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。

原因&#xff1a;环境变量没有正确添加解决&#xff1a;我的电脑—右键属性—高级系统设置—环境变量—系统变量—Path—双击进入—新建&#xff0c;去安装Anaconda的目录下&#xff0c;找到Library中的bin&#xff0c;将此时的路径粘贴到此处

【CSS】CSS 选择器及其优先级

元素选择器&#xff1a;选择特定的HTML元素。优先级较低。 p {/* 样式规则 */ }类选择器&#xff1a;选择具有特定类名的元素。优先级稍高于元素选择器。 .example {/* 样式规则 */ }ID选择器&#xff1a;选择具有特定ID的唯一元素。优先级更高。 #header {/* 样式规则 */ }属性…

Android C/C++ native编程NDK开发中logcat的使用

Android C/C native编程NDK开发中logcat的使用 前言具体用法 前言 在NDK开发过程中&#xff0c;C/C层&#xff0c;需要对代码进行一些调试&#xff0c;日志打印是我们解决异常或崩溃的重要手段&#xff0c;这里我就简单介绍下日志打印三步走。 首先我们先看下官方文档关于日志…

ATX Power Supply

Pinout 20 PIN MOLEX 39-29-9202 at the motherboard 20 PIN MOLEX 39-01-2200 at the cable PinNameColorDescription13.3VOrange+3.3 VDC23.3VOrange+3.3 VDC3COMBlackGround45VRed+5 VDC

Redis | 在Java中操作Redis

在Java中操作Redis&#xff1a; 第一步: pom.xml文件中导入maven依赖第二步: 在application.yml配置文件中 配置Redis数据源第三步: 编写RedisConfiguration配置类&#xff0c;创建RedisTemplate对象第四步: 通过RedisTemplate对象操作Redis / Redis中的数据4.1 操作“字符串St…

聊聊分布式架构07-[Spring]IoC和AOP

目录 Spring IoC IoC的设计与实现 简单容器BeanFactory 高级容器ApplicationContext IoC容器工作过程 Spring AOP 简单的Spring AOP示例 Spring IoC IoC&#xff08;Inversion of Control&#xff09;&#xff1a; IoC是一种设计原则&#xff0c;它反转了传统的控制流。…

Linux 中监控磁盘分区使用情况的 10 个工具

在本文[1]中&#xff0c;我们将回顾一些可用于检查 Linux 中磁盘分区的 Linux 命令行实用程序。 监控存储设备的空间使用情况是系统管理员最重要的任务之一&#xff0c;它可以确保存储设备上有足够的可用空间&#xff0c;以维持 Linux 系统的高效运行。 1. fdisk fdisk 是一个强…

相似度loss汇总,pytorch code

用于约束图像生成&#xff0c;作为loss。 可梯度优化 pytorch structural similarity (SSIM) loss https://github.com/Po-Hsun-Su/pytorch-ssimhttps://github.com/harveyslash/Facial-Similarity-with-Siamese-Networks-in-Pytorch/blob/master/Siamese-networks-medium.ip…

C++类和对象(五) 拷贝构造函数

1 概念 在现实生活中&#xff0c;可能存在一个与你一样的自己&#xff0c;我们称其为双胞胎。那在创建对象时&#xff0c;可否创建一个与已存在对象一某一样的新对象呢&#xff1f; 那在创建对象时&#xff0c;可否创建一个与已存在对象一某一样的新对象呢&#xff1f; 拷贝构造…

系统设计 - 我们如何通俗的理解那些技术的运行原理 - 第五部分:支付系统

本心、输入输出、结果 文章目录 系统设计 - 我们如何通俗的理解那些技术的运行原理 - 第五部分&#xff1a;支付系统前言如何学习支付系统信用卡为什么被称为“银行最赚钱的产品”&#xff1f;VISA/万事达卡如何赚钱&#xff1f;步骤说明为什么开证行应该得到补偿 当我们在商家…

大模型、实时需求推动湖仓平台走向开放

大模型、实时需求高涨 AGI 时代&#xff0c;以 ChatGPT、Midjourney 等为代表的大模型迅速应用加速了 AI 普及&#xff0c;越来越多的企业选择搭建自己的 AI 基础设施&#xff0c;训练行业大模型。 另一方面&#xff0c;企业为了在瞬息万变的市场环境中更快的做出商业决策&…
最新文章