首页 > 试题广场 >

以下代码的输出是?

[单选题]
以下代码的输出是
$somevar=15;
function addit () {
   GLOBAL $somevar;
   $somevar++ ;
   echo "somevar is $somevar";
}
addit ();
  • somevar is 15
  • somevar is 16
  • somevar is 1
  • somevar is $ somevar
双引号解析变量
发表于 2016-02-17 16:40:36 回复(1)
GLOBAL把$somevar 转成全局变量,ad方法里的$somevar 也等于15,15++ 等于16
发表于 2015-04-24 09:32:56 回复(0)
global。双引号 16 妥妥的
发表于 2016-05-06 12:23:44 回复(0)
PHP Global变量的作用是定义全局变量,但是这个全局变量不是应用于整个网站,而是应用于当前页面,包括include或require的所有文件.在函数体内定义的PHP Global变量,函数体外可以使用,在函数体外定义的global变量不能在函数体内使用
发表于 2015-04-23 14:56:01 回复(0)
Qiq头像 Qiq
答案应该是D 。 "somever is $somever". $somever放在引号内表示字符串。如果要表示变量就需要放在引号外,并且用.连接。是这样的 "somever is".$somever
发表于 2015-08-03 23:18:54 回复(8)

楼上的解答不错

发表于 2019-10-20 11:45:51 回复(0)
global不是应该小写?
发表于 2018-06-25 14:57:54 回复(0)
我用win+php7在cli模式下执行直接报错,提示GLOBAL $somevar的$somevar变量未定义。
发表于 2018-04-20 09:45:21 回复(0)
global会将变量转换为全局变量
发表于 2018-03-09 12:23:02 回复(0)
应该是1
发表于 2018-02-25 13:21:10 回复(1)
王老师说的,就是全局变量如果没有定义在函数内部,其函数体外部定义的变量就不能在函数内部使用!
发表于 2017-02-16 07:42:44 回复(0)
正确答案:B。D排除,双引号会解析里面的变量。如果最后输出格式为:echo $somevar++ ;则A答案正确。本题注意:$b=++$a和$b=$a++的区别,前者先+1后再赋值给$b;后者是先赋值后+1.
发表于 2016-04-06 11:54:53 回复(0)
这道题没答案,addit()要加分号,否则就报错。然后echo输出双引号变量是可以执行选B,单引号输出结果选D
发表于 2016-02-17 11:27:35 回复(0)
B
发表于 2015-09-02 11:45:31 回复(0)
其实我选到D了,虽然一开始有区分单引号和双引号,但用着用着就很少去区分了。
比如这句,一般是这样写的:
echo "somevar is".$somevar;
或者:
echo "somevar is", $somevar;

但实测后发现,题目里的写法其实更好,不用另外加空格。
发表于 2015-08-16 00:03:38 回复(0)
B
发表于 2015-08-14 13:29:10 回复(0)
b
发表于 2015-07-25 20:58:52 回复(0)
somevar是全局的了,单引号里面不解析变量
发表于 2015-06-29 08:26:39 回复(0)

结果明显为1 C正确
发表于 2015-04-23 22:25:36 回复(2)