PHP中的变量

news2024/11/28 2:41:55

6304791419c3d12f8a56a377d5fef2b2.jpeg

PHP中变量是用于储存信息的容器,我们命令服务器去干活的时候,往往需要产生一些数据,需要临时性存放起来,方便取用赋值方法与数学中的代数相类似

1、在PHP中变量是用于储存信息的容器,类似于数学中的集合

2、赋值方法与数学中的代数相类似

变量是用于存储值的,我们命令服务器去干活的时候,往往需要产生一些数据,需要临时性存放起来,方便取用。

我们也可以理解为,变量就像一个购物袋,我们可以用来装苹果、榴莲(当然也可以用来装玫瑰)

需要注意的是,一般情况下一个变量只能装一个(不要太贪心)值,除非是复合变量(后面变量类型时会介绍,比如:数组,对象就是复合型的)

当我们放进去一个苹果后,再放进榴莲的时候,苹果就被替换掉,再放入香蕉,那么榴莲就被替换了

变量是用于存储信息的”容器

我们在PHP中的变量也是如此。有几个特点:

  1. 必须要以$开始。后面跟着变量的名称,如变量x必须要写成$x

  2. 变量的首字母不能以数字开始

  3. 变量的名字区分大小写($y,和$Y是两个不同的变量),变量名不能包含空格

  4. 变量不要用特殊符号、中文,_不算特殊符号

  5. 变量命名要有意义(别写xxxaaaccc这种 变量名)

  6. 变量名只能包含字母数字字符以及下划线(A-A,0-9_),不能以数字开始,但是数字可以夹在变量名中间和结尾

  7. PHP没有声明变量的命令,变量在你第一次赋值给它的时候就被创建了的

错误:变量以数字开始

<?php

 $123 = 345

?>

错误:变量当中有特殊字符,中文

<?php

// $a*d = 345
//$中国=345

?>

错误:变量名没有意义aaa,容易输错,也没有含义

<?php
  $aaaa = 345;
?>

错误:变量严格区分大小写 $dog$DogPHP学院的变量,尝试将$dog的值改为8.结果D写成了大写

<?php
 $dog = 5;
 //重新修改$dog的值,将$dog改为8
 $Dog = 8;
?>

PHP是一门弱类型语言

不必向PHP声明该变量的数据类型,PHP会根据变量的值,自动把变量转换为正确的数据类型

PHP变量作用域

变量的作用域是脚本中的变量可被引用,使用的部门

PHP有四种不同的变量作用域

  • local

  • global

  • static

  • parameter

局部作用域与全局作用域

在所有函数外部定义的变量,拥有全局作用域。除了函数外,全局变量可以被脚本中的任何部分访问,要在一个函数中访问一个全局变量,需要使用 global关键字。

PHP函数内部声明的变量是局部变量,仅能在函数内部访问

<?php 
  $x=5; // 全局变量 
  function myTest() 
  { 
    $y=10; // 局部变量 
    echo "<p>测试函数内变量:<p>"; 
    echo "变量 x 为: $x"; 
    echo "<br>"; 
    echo "变量 y 为: $y"; 
  }  

myTest(); 

echo "<p>测试函数外变量:<p>"; 
echo "变量 x 为: $x"; 
echo "<br>"; 
echo "变量 y 为: $y"; 
?>

在以上实例中 myTest() 函数定义了 $x$y 变量。$x 变量在函数外声明,所以它是全局变量 , $y变量在函数内声明所以它是局部变量。

当我们调用myTest()函数并输出两个变量的值, 函数将会输出局部变量 $y 的值,但是不能输出 $x 的值,因为 $x变量在函数外定义,无法在函数内使用,如果要在一个函数中访问一个全局变量,需要使用 global关键字。

然后我们在myTest()函数外输出两个变量的值,函数将会输出全局部变量 $x的值,但是不能输出 $y的值,因为 $y 变量在函数中定义,属于局部变量

可以在不同函数中使用相同的变量名称,因为这些函数内定义的变量名是局部变量,只作用于该函数内

global 关键字

global关键字用于函数内访问全局变量。

在函数内调用函数外定义的全局变量,我们需要在函数中的变量前加上 global关键字

<?php
  $x=5;
  $y=10;

function myTest()
{
  global $x,$y;
  $y=$x+$y;
}

myTest();
echo $y; 
?>

static作用域

当一个函数完成时,它的所有变量通常都会被删除,然而,有时,你希望某个局部变量不要被删除

要做到这一点,在第一次声明变量时使用static关键字

<?php
   function myTest() {
    static $x = 0;
    echo $x;
    $x++;
   }
   myTest(); // 0
   myTest(); // 1
   myTest(); // 2
?>

每次调用该函数时,该变量将会保留着函数前一次被调用时的值,需要注意的是,该变量仍然是局部变量

如果变量$x去掉static,你会发现,每次都是0,0,0,并不会保留上一次的值

参数作用域

参数是通过调用代码将值传递给函数的局部变量,参数是在参数列表中声明的,作为函数声明的一部分

<?php

function myTest($x)
 {
   echo $x;
 }

  myTest(5);

?>

8460ecee5cbf91b5306eabe7ca117d51.png

9b4a8456416ea2f67c913fb590ad5041.jpeg

7e2f17cbde7b08e5cd41f334cfcb198d.png

2e5c57f3571170e591598c6ce3a6c9f3.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/723956.html

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

相关文章

ctf web解题系列————T1

文章目录 弱类型题目思路 基于PHP语言 弱类型 表示0乘10的123456次方。 题目 思路 此处为弱相等 使用hackbar进行调试 猜测&#xffe5;key为一个字符串&#xff0c;则化为数字–>0 直接在hackbar中输入令message的key值为0即可。 若不为纯字符&#xff0c;则采用枚举爆…

Rust in Action笔记 第十一、十二章 简易操作系统内核

本章讲了如何用Rust写一个简易的操作系统&#xff08;FledgeOS&#xff09;&#xff0c;除了Rust的知识外&#xff0c;可以了解操作系统主要的组成部分&#xff0c;加深对操作系统的理解 首选需要掌握和了解一些工具或者技术&#xff0c;QEMU是一种虚拟化技术&#xff0c;用于…

CANoe的面板控件input/output关联信号的问题分析

1、引子 当我们想在CANoe中制作一个面板,实现:在一个文本框中输入某个信号的值,点击发送按钮,就能把信号所在的CAN消息发送出去,此时信号的值就是文本框中输入的值。 要实现此功能很简单,在CANoe上新建一个面板,在工具箱中把Input/Output Box和Button两个控件拖到面板…

测试函数-ZDT函数.txt版本免费下载

多目标优化问题中&#xff0c;改进NSGA-II算法需要测试函数ZDT函数来查看改进的效果如何&#xff0c;大多博客下载需要积分&#xff0c;在这附上免费网址&#xff0c;大家自行下载。包含ZD1-ZDT6 如下 Emoobook - Appendix D

Azure 中 Linux的时间同步问题

问题概述 Azure环境中&#xff0c;将群集主机放置在不同的可用区。由于网络限制比较严格没有开启外部或内部NTP时间同步&#xff0c;而是考虑用Azure主机的时间同步&#xff0c;但群集会由于时间差异而出现异常告警信息。 问题分析 问题主要是以下原因形成&#xff1a; 自…

NSS [HNCTF 2022 Week1]2048

NSS [HNCTF 2022 Week1]2048 前端小游戏&#xff0c;小菜。 flag&#xff1a;

vue+Nodejs+Koa搭建前后端系统(七)-- 用户注册、注销

前言 前端采用vue3前端组件库采用ElementPlus本篇文章需要结合上一篇《vueNodejsKoa搭建前后端系统&#xff08;六&#xff09;-- 用户登录》一起看 客户端用户注册页面 添加注册页面 添加 /src/pages/register/register.vue 文件 安装md5 md5是加密插件&#xff0c;用于…

算力井喷、全球布局,亚马逊云科技生成式AI不断创新解决企业需求

时至今日&#xff0c;生成式AI在创意输出&#xff08;如写作、编程、设计&#xff09;、功能增强&#xff08;如写摘要、搜索&#xff09;、交互式体验&#xff08;Q&A、聊天&#xff09;和决策支持&#xff08;各类助理&#xff09;这四个领域已展现出惊人潜力。 在亚马逊…

软件测试外包

目录 前言&#xff1a; 评估软件测试服务提供商 为什么将测试外包出去 测试服务外包应当考虑因素 参与模式 地理位置 服务协议 灵活性 质量改进 如何选择测试外包服务商 需要什么外包 调查 互动 结论 前言&#xff1a; 在当今的软件开发行业中&#xff0c;越来越…

k8s Volume之Persistent Volume持久卷

一、Persistent Volume yaml详情&#xff1a; kind: PersistentVolume apiVersion: v1 metadata:# PV卷名称name: nfs-mvn-repo spec:# 容量capacity:# 存储大小storage: 20Ginfs:server: 192.168.80.170path: /srv/nfs/disk/mvn-repo# 该卷支持的访问模式accessModes:- ReadW…

SPEC CPU 2006 在 CentOS 5.0 x86_64 古老系统测试【2】

上一篇 SPEC CPU 2006 在 CentOS 5.0 x86_64 古老系统测试_hkNaruto的博客-CSDN博客 虚拟机时间&#xff0c;一天后获得结果 由于ssh版本太低&#xff0c;采用nc把文件拷贝出来 结果 SPEC CFP2006 Result Copyright 2006-2023 Standard Performance Evaluation Corporatio…

MES系统

MES系统&#xff0c;全称制造执行系统(Manufacturing Execution System)&#xff0c;是一种用于实时监控、追踪和控制生产过程的计算机化系统。 SAP Fiori概览 相信工作中接触过SAP的人&#xff0c;肯定对SAP Fiori不陌生。那什么是SAP Fiori呢&#xff1f; SAP Fiori是一种用于…

基于STM32单片机的智能视力保护台灯设计

硬件方案 智能台灯以专门感应人体红外信号的红外传感器为基础&#xff0c;这意味着仅当有人的时候&#xff0c;红外传感器才输出一个信号&#xff0c;经放大处理后达到单片机的输入门限电压&#xff0c;单片机开始运行&#xff0c;台灯自动点亮。当人离开的时候&#xff0c;单…

CSRF漏洞

前言 作者简介&#xff1a;不知名白帽&#xff0c;网络安全学习者。 博客主页&#xff1a;不知名白帽的博客_CSDN博客-网络安全,CTF,内网渗透领域博主 网络安全交流社区&#xff1a;https://bbs.csdn.net/forums/angluoanquan 目录 CSRF漏洞原理 CSRF常见分类 GET型 POST型…

GIT版本控制常规性操作演示汇总

文章目录 GIT基本操作GIT配置个人信息配置&#xff1a;GIT查看个人信息配置&#xff1a;GIT的三大区域GIT回滚&#xff1a;git resetGIT恢复日志&#xff1a;git reflogGIT三大区域转换GIT新建分支GIT合并分支GIT删除分支码云上创建项目GIT变基&#xff1a;git rebase合并提交记…

轮询-实时调用接口

https://www.cnblogs.com/zhangliang88/p/16254460.htmlhttps://www.cnblogs.com/zhangliang88/p/16254460.html

软件测试 | Selenium对多浏览器处理

在执行自动化测试过程中&#xff0c;我们往往会针对不同的浏览器做兼容性测试&#xff0c;可以通过对测试用例代码的改造&#xff0c;实现对不同浏览器的自动化兼容性测试。 注&#xff1a;实现对不同浏览器的自动化兼容性测试&#xff0c;需要先将各个浏览器的驱动在PC端配置…

基于PyQt5的桌面图像调试仿真平台开发(15)图像融合

系列文章目录 基于PyQt5的桌面图像调试仿真平台开发(1)环境搭建 基于PyQt5的桌面图像调试仿真平台开发(2)UI设计和控件绑定 基于PyQt5的桌面图像调试仿真平台开发(3)黑电平处理 基于PyQt5的桌面图像调试仿真平台开发(4)白平衡处理 基于PyQt5的桌面图像调试仿真平台开发(5)…

AMEYA360:尼得科nidec恩布拉科变频压缩机介绍

能源安全、能源价格方面的挑战与气候危机交织 提高能源效率比以往任何时候都更为紧迫。 能源效率是应对当今全球能源危机的核心 也是能源价值创造的重要体现。 尼得科恩布拉科大金 带来制冷方面的节能研究 LMSEY系列冷库一体机使用变频调速可 节能约14%! 全球制冷技术供应商、尼…

浅谈配电能效平台在城市地下综合管廊的应用

摘要:电气设计是综合管廊设计的重要组成部分&#xff0c;文章对综合管廊的断面设计、供配电系统和缆线设计进行了分析阐述&#xff0c;并结合设计案例&#xff0c;简要总结了综合管廊电气设计要点。 关键词:综合管廊&#xff1b;断面设计&#xff1b;供配电系统&#xff1b;缆…