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. 这个前缀 ...
随机推荐
- --------------Hibernate学习(四) 多对一映射 和 一对多映射
现实中有很多场景需要用到多对一或者一对多,比如上面这两个类图所展现出来的,一般情况下,一个部门会有多名员工,一名员工只在一个部门任职. 多对一关联映射 在上面的场景中,对于Employee来说,它跟D ...
- 关于signal和fork的思考
fork可以在linux中创建子进程.先看man手册里面的东西: SYNOPSIS #include <unistd.h> pid_t fork(void);DES ...
- Spring Boot-------JPA基础及查询规则
JPA基础及查询规则 JPA JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数 ...
- [转]ubuntu下安装fiddler
转 ubuntu下安装fiddler biangbiang 因为工作中需要用到fiddler工具 现在工作环境迁移到ubuntu14 下 发现fiddler只支持windows网上也有很多推荐 ...
- Epplus:导出Excel
看到其它大神的Epplus导出Excel,结合写出符合自己需求的将导出数据到Excel,给其它人参考一下,也可以学习http://www.cnblogs.com/caofangsheng/p/6149 ...
- 停止Flink任务
1.简单粗暴 控制台中Ctrl+C 2.UI中点击"Cancel" 3.执行cancel命令,需要知道Flink的Job ID # flink cancel jobId
- Laravel学习笔记(二)
解决了类自动加载的问题,剩下的问题就是看文档了,laravel的官方文档虽然简单,但是却包含了很多基础知识,学习Laravel最好先看看官方文档,我感觉帮助很大,因为laravel框架的源码看起来并不 ...
- scott表结构
- UML2和建模工具学习总结
软件发展的方向:CS–>BS–>SOA–>BIG DATA 建模的含义: 模型是对现实的简化 从特点视角对系统的一个完整性描述 建模的重要性: 为了更好的理解一个系统 管理复杂度(也 ...
- 第四节:dingo/API 最新版 V2.0 之 Responses (连载)
因为某些某些原因,不能按时更新,唉.我会尽力,加快速度.(这句话不是翻译的哈) 原文地址--> https://github.com/dingo/api/wiki/Responses A fun ...