本文目录一览:
1、php的函数传参要怎么表达;如何让函数内修改全局变量?
2、什么是PHP中可变变量以及如何应用
3、PHP中,将变量值作为变量名
4、PHP:函数内部使用的变量声明为全局变量时,其名称要与全局变量名称一致
5、php变量定义方法
php的函数传参要怎么表达;如何让函数内修改全局变量?
使用引用啊 给你写个例子啊,稍等
<?php
$A = 10; //初始化一个变量,并赋值10
echo $A; //输出这个值
echo '<br/>'; //这里输出一个换行符是等下演示运行的时候为了区分
function B( $B ) { //自定义函数,参数是引用形式
$B += 33; //给参数的值再加上33;
}
B( $A ); //调用这个自定义函数,并把变量A作为参数
echo $A; //再次输出变量A的值
php面向过程编程方式中的自定义函数,是一个独立的整体,参数和返回值可以理解为是函数本身和函数之外的一个接口而已! 换句话说,常规下,自定义函数中的变量与外部变量并没有关系,哪怕变量名一模一样。各自独立! 而添加引用就不同了,引用可以理解为,比如说,就像2个手机号码绑定消费一样,任何一个手机号消费,就等于2个号都在消费,当然,这是一个比喻啊!
什么是PHP中可变变量以及如何应用
有时候可变的变量名会给编程带来很大的方便。也就是说变量名可以被动态的命名和使用。通常变量通过下面这样的语句来命名。可变变量名指的是使用一个变量的值作为这个变量的名称。在上面的例子中,通过使用两个$
符号,你可以把hello
设置成一个变量的名称,就像下面那样。
通过上面的两个语句,有两个变量被定义:变量$a
,装的内容是hello
以及变量$hello
,装的内容是world
。于是,下面的语言:
<?php
跟下面的语句的输出完全一致:
<?php
它们都输出:hello world
。
为了使用数组的可变变量名,你需要解决一个歧义问题。就是,如果你写$$a[1]
,解析器需要明白究竟你的意思是要把$a[1]
当成一个变量,还是要把$$a
当成变量、[1]
指的是这个变量的索引。解决这个歧义问题的语法是:第一种情况使用${$a[1]}
,第二种情况使用${$a}[1]
。
类属性也可以通过可变属性名来访问。可变属性名从产生调用所在的变量的访问范围内获取。例如,如果你的表达式是这样的:$foo->$bar
,那么运行时将会在本地变量范围内寻找变量$bar
,它的值将会作为$foo
对象的一个属性名。如果$bar
是个数组也可以使用。
例1 可变变量名
<?php
class foo {
var $bar = 'I am bar.';
}
$foo = new foo();
$bar = 'bar';
$baz = array('foo', 'bar', 'baz', 'quux');
上面的例子将会输出下面的结果:I am bar.
请注意,可变变量名不能用于PHP函数和类里的超级全局数组变量上。
PHP中,将变量值作为变量名
$GLOBALS[$s][] = $row;
或
${$s}[] = $row;
楼主,麻烦你去下一个PHP手册看下吧。 可变变量 有时候使用可变变量名是很方便的。就是说,一个变量的变量名可以动态的设置和使用。一个普通的变量通过声明来设置,例如:
<?php
$a = 'hello';
?>
一个可变变量获取了一个普通变量的值作为这个可变变量的变量名。在上面的例子中hello
使用了两个美元符号($
)以后,就可以作为一个可变变量的变量了。例如:
<?php
$$a = 'world';
?>
这时,两个变量都被定义了:$a
的内容是“hello”并且$hello
的内容是“world”。因此,可以表述为:
<?php
echo "$a ${$a}";
?>
以下写法更准确并且会输出同样的结果:
<?php
echo "$a $hello";
?>
它们都会输出:hello world
。
要将可变变量用于数组,必须解决一个模棱两可的问题。这就是当写下$$a[1]
时,解析器需要知道是想要$a[1]
作为一个变量呢,还是想要$$a
作为一个变量并取出该变量中索引为[1]
的值。解决此问题的语法是,对第一种情况用${$a[1]}
,对第二种情况用${$a}[1]
。
PHP:函数内部使用的变量声明为全局变量时,其名称要与全局变量名称一致
下面的信息,是来自互联网,我就直接粘贴在这里了。
PHP的变量分不出是声明还是使用,不管是声明还是使用都是一种形式,所以函数中要使用外部的变量就要使用global
来确定函数中是使用外部的全局变量,而不是声明。
php常量默认就是全局的,常量只能定义一次,而且不可以改变。
而javascript声明变量使用关键字var name = 'hyr';
,如果在函数中不声明就直接用全局的。
不使用global
关键词,函数内$a
是局部变量,全局的$a = 10
不会改变。
<?php
$a = 10;
function test()
{
$a = 20;
echo $a;
}
test(); // 局部变量 20
echo "<br>";
echo $a; //全局变量 10
?>
函数内使用global
关键字声明$a
就是外部全局的$a
变量。
函数内global
关键字声明的同时不能同时赋值。
<?php
$a = 10;
function test()
{
global $a; //声明$a是外部的全局变量$a的同时不能赋值,赋值可以另外起一行赋值,如下行
$a = 20; //声明函数里使用的 $a 变量是来自函数外部声明的全局变量$a
echo $a;
}
test(); // 结果为20
echo "<br>";
echo $a; // 结果也是20
?>
php变量定义方法
PHP语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,主要适用于Web开发领域。以下是为大家分享的php变量定义方法,供大家参考借鉴,欢迎浏览!
- 定义常量
define("CONSTANT", "Hello world.");
常量只能包含标量数据(boolean,integer,float 和 string)。 调用常量时,只需要简单的用名称取得常量的值,而不能加“$”符号,如:echo CONSTANT;
注: 常量和(全局)变量在不同的名字空间中。这意味着例如 TRUE 和 $TRUE 是不同的。 - 普通变量
$a = "hello";
- 可变变量(使用两个美元符号(
$
))
两个变量都被定义了:$$a = "world";
$a
的内容是“hello”并且$hello
的内容是“world”。 因此,可以表述为:
要将可变变量用于数组,必须解决一个模棱两可的问题。这就是当写下echo "$a ${$a}"; 或者 echo "$a $hello"; 它们都输出:hello world
$$a[1]
时,解析器需要知道是想要$a[1]
作为一个变量呢,还是想要$$a
作为一个变量并取出该变量中索引为[1]
的值。解决此问题的语法是,对第一种情况用${$a[1]}
,对第二种情况用${$a}[1]
。 - 静态变量
在函数内部
static $a = 0;
注意:声明中用表达式的结果对其赋值会导致解析错误 如static $a =3+3;
(error) 静态变量仅在局部函数域中存在(函数内部),函数执行完之后,变量值不会丢失,可用于递归调用。 - 全局变量
在函数体内定义的
global
变量,函数体外可以使用,在函数体外定义的global
变量不能在函数体内使用,在全局范围内访问变量可以用特殊的 PHP 自定义$GLOBALS
数组: 如:$GLOBALS["b"] = $GLOBALS["a"] + $GLOBALS["b"];
在一个函数域内用global
语句导入的一个真正的全局变量实际上是建立了一个到全局变量的引用。
注:对于变量的global $obj;
static
和global
定义是以引用的方式实现的。 - 给变量赋值:传地址赋值(简单引用):
改动新的变量将影响到原始变量,这种赋值操作更加快速。 注意:只有命名变量才可以传地址赋值。 注意:如果$bar = &$foo; //加&符号到将要赋值的变量前
改变$bar = $a; $bar = &$foo;
$bar
的值只能改变变量$foo
的值,而不改变$a
的值(引用改变了)。 - PHP 超全局变量
$GLOBALS
:包含一个引用指向每个当前脚本的全局范围内有效的变量。该数组的键标为全局变量的名称。从 PHP 3 开始存在$GLOBALS
数组。$_SERVER
:变量由 Web 服务器设定或者直接与当前脚本的执行环境相关联。类似于旧数组$HTTP_SERVER_VARS
数组(依然有效,但反对使用)。$_GET
:经由 HTTP GET 方法提交至脚本的变量。$_POST
:经由 HTTP POST 方法提交至脚本的变量。$_COOKIE
:经由 HTTP Cookies 方法提交至脚本的变量。$_FILES
:经由 HTTP POST 文件上传而提交至脚本的变量。文件上传表单中要有enctype="multipart/form-data"
。$_ENV
:执行环境提交至脚本的变量。$_REQUEST
:经由 GET,POST 和 COOKIE 机制提交至脚本的变量,因此该数组并不值得信任。所有包含在该数组中的变量的存在与否以及变量的顺序均按照 php.ini 中的variables_order
配置指示来定义。该数组没有直接模拟 PHP 4.1.0 的早期版本。参见import_request_variables()
。- 注意:自 PHP 4.3.0 起,
$_FILES
中的文件信息不再存在于$_REQUEST
中。 $_SESSION
:当前注册给脚本会话的变量。
如何禁用phpinfo():
在 php.ini
中:
disable_functions = phpinfo()
重启web服务器。
php中的常量
常量只能用 define(常量名,常量值);
常量只能包含标量数据(boolean,integer,float 和 string)。
可以简单的通过指定其名字来取得常量的值,不要在常量前面加上 $
符号。如果常量名是动态的,也可以用函数 constant()
来读取常量的值。用 get_defined_constants()
可以获得所有已定义的常量列表。
注: 常量和(全局)变量在不同的名字空间中。这意味着例如 TRUE 和 $TRUE 是不同的。
如果使用了一个未定义的常量,PHP 假定想要的是该常量本身的名字,如同用字符串调用它一样(CONSTANT 对应 "CONSTANT")。此时将发出一个 E_NOTICE 级的错误。参见手册中为什么 $w3sky[bar]
是错误的(除非事先用 define()
将 bar
定义为一个常量)。如果只想检查是否定义了某常量,用 defined()
函数。
常量和变量不同:
- 常量前面没有美元符号(
$
); - 常量只能用
define()
函数定义,而不能通过赋值语句; - 常量可以不用理会变量范围的规则而在任何地方定义和访问;
- 常量一旦定义就不能被重新定义或者取消定义;
- 常量的值只能是标量。
定义常量
<?php
define("CONSTANT", "Hello world.");
echo CONSTANT; // outputs "Hello world."
echo Constant; // outputs "Constant" and issues a notice.
?>