PHP正在进行时-变量
在PHP中,变量是$+变量名,变量名遵循标识符的命名规则,可以以字母、下划线开头,可以由数字、下划线、字母组成合法的变量名。
变量声明
所有变量在使用之前应该进行声明,而且最好带上注释,虽然在PHP中可以不显示声明变量。声明变量之后,可以为变量进行赋值;变量的赋值有两种类型值赋值和引用赋值。
<?php
#合法的声明变量
$_name;
$account;
$show_title;
#赋值
$color="red";
#引用赋值
$user_color=&$color;
?>
变量的作用域
在PHP脚本中的任何位置都可以声明变量,但是根据位置的不同,作用域的范围也不同。
- 局部变量
一般局部变量都是在函数中声明,即它只能在函数中被引用,函数退出时改变量及其值被销毁。如果在函数外使用该变量,PHP会把它当作另外一个变量进行处理,与函数中的变量无任何关系。
<?php
$x=5;
function show_x() {
$x=3;
echo $x;
}
show_x();
echo $x;
?>
- 函数参数
函数参数更具其传递的方式分为两种,按值传递和按引用传递;如果是按值传递,参数的作用域只限于函数内,函数退出后参数被销毁。但按引用传递,参数的作用域范围不仅在函数内部。
<?php
$cost_fish=20.10;
$cost_apple=2.45;
#引用参数前面需要加上&符号
function rise($cost_fish,&$cost_apple) {
$cost_fish++;
$cost_apple++;
}
rise($cost_fish,$cost_apple);
echo $cost_fish."值传递参数<--->引用传递参数".$cost_apple;
?>
- 全局变量
可以在脚本中的任何一个地方访问全局变量,但在函数中要修改全局变量的时候需要使用关键字global显式的声明。
<?php
$x=5;
function show_x() {
global $x;
$x++;
}
show_x();
?>
通过$GLOBAL数组也可以声明全局变量
<?php
$number=15;
function calc() {
$GLOBALS["number"]++;
}
calc();
echo $number;
?>
使用全局变量一定要谨慎,用多了之后很容易造成代码混乱。
- 静态变量
静态变量与函数参数不同在于,静态变量声明的时候多了static关键字,使得静态变量在函数退出之后不会被销毁,并且保留这个值在函数再次调用的时候使用该值。
<?php
function spend() {
static $date=0;
$date++;
echo $date;
}
spend();
spend();
?>
PHP预定义变量
PHP中预定义了很多变量,可以在执行脚本的任何位置访问他们,这些变量主要是提供了大量关于环境的信息。
//打印出$_SERVER 预定义的变量信息
foreach($_SERVER as $var =>$value){
echo "$var=>$value<br/>";
}
更多关于PHP变量的内容:http://php.net/manual/en/language.variables.php
PHP正在进行时-变量的更多相关文章
- Java定义bean实体类中的变量时变量名的问题
首先:TMD,这个问题花了我两个多小时,居然是因为一个字母的大小写导致的,我瞬间就&Y^%^&%&()*%¥%¥¥&^#@%&; 事情是酱紫的: 我定义了一个变 ...
- 由于js词法性质和全局变量被更改,循环绑定的click事件执行时变量和定义时 不一致的bug,各种解决方案。
由于js词法性质和全局变量被更改,循环绑定的click事件执行时变量和定义时 不一致的bug,各种解决方案. 动态在页面上添加了5个按钮,实现的功能应该是点击对应按钮在控制台输出相应的索引.但因为应该 ...
- 调试Java源代码时变量的值无法追踪怎么办?
问题:调试Java源代码时,只能看到源代码,却无法查看源代码中的变量的即时值 原因:jre为了节省空间,在打包时去掉了class文件中的调试信息. 思路:使用jdk里的src.zip源码重新编译生成完 ...
- 前端使用mobx时,变量已经修改了,为什么组件还是没变化,map类型变量,对象类型变量的值获取问题(主要矛盾发生在组件使用时)
前天我在使用一个前端多选框组件时遇到了一个问题,明明对象内的值已经修改了,但是组件显示的还是没有效果改变,以下是当时打出的log,我打印了这个对象的信息 对象内的值已经修改了但是组件还是不能及时更改, ...
- eclipse配置运行时变量
说明:我这里是在执行测试方法是配置的环境变量 步骤: 选中测试方法 -> 右键 -> run as -> run configurations ->
- 可遇不可求的Question之Mysql在不重启服务的情况下修改运行时变量篇
比方说在一些实际生产环境中,想改个MYSQL的配置,但是又不想停止服务重起MYSQL,有什么办法呢?使用SET命令可以做到,请看下面几个例子: 1.设置key_buffer_size的大小为10M. ...
- thinphp中volist嵌套循环时变量$i 被污染问题,key="k"
默认是$i,但是嵌套循环是使用$i,默认的变量$i就会被污染.可以自定义设置变量key="k" k任意. 用 key="k" 代替默认的 $i 1 2 3 4 ...
- python学习笔记(基础一:'hello world'、变量、字符编码)
第一个python程序: Hello World程序 windows命令行中输入:python,进入python交互器,也可以称为解释器. print("Hello World!" ...
- 1. Activiti 运行时表信息总结
Activiti的后台是有数据库的支持,所有的表都以ACT_开头. 第二部分是表示表的用途的两个字母标识. 用途也和服务的API对应. ACT_RE_*: 'RE'表示repository. 这个前缀 ...
随机推荐
- Asteroids!-裸的BFS
G - Asteroids! Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Subm ...
- 牛腩新闻公布系统--学习Web的小技巧汇总
2014年11月10日,是个难忘的日子.这一天.小编的BS学习開始了.BS的开头,从牛腩新闻公布系统開始.之前学习的内容都是CS方面的知识,软考过后.開始学习BS,接触BS有几天的时间了,跟着牛腩老师 ...
- C语言之基本算法37—数组最大值及其位置
//数组运算 /* ================================================================== 题目:查找数组的最大元素,并输出其位置和值! ...
- Comparable和Comparator的差别
原文地址:http://leihuang.org/2014/11/16/Comparable-Vs-Comparator/ Comparable和Comparator都是用来实现集合中元素的比較.排序 ...
- 在linux上手动搭建svn服务器
svn服务器的搭建 环境: linux CentOS 7 安装: 1.安装svn服务器 yum install subversion 2.查看版本 svnserve --version 3.创建版本库 ...
- 在PowerShell脚本中集成Microsoft Graph
作者:陈希章 发表于2017年4月23日 我旗帜鲜明地表态,我很喜欢PowerShell,相比较于此前的Cmd Shell,它有一些重大的创新,例如基于.NET的类型系统,以及管道.模块的概念等等.那 ...
- 前端笔记----类型转换display
display属性用来在行内元素,块元素,行内块元素之间进行转化. 常用的属性有: 1.none :元素隐藏且不占位置,相当于不存在,一般用在动态展示效果:2.block :元素以块元素显示,有些行内 ...
- REST设计规则
1.简介 REST(Representational State Transfer), 表述性状态转移是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格. REST只是一 ...
- 《极客与团队》【PDF】下载
<极客与团队>[PDF]下载链接: https://u253469.ctfile.com/fs/253469-231196337 内容简介 软件开发是一项团队运动,人的因素对结果的影响完全 ...
- linux根目录扩容
原来在ucloud上面买了一个服务器,结果根目录上面只有20G,/data挂载点下面有500G,没多久/根目录存储空间用完了,所以要扩展 linux的文件模式分为lvm模式和普通的非lvm模式,云服务 ...