Global问题
php里面的global的使用。如下例子:
$name="even";//定义变量name,并初始化
function echoName()
{
//试图引用函数外面的变量
echo "myname is ".$name."
";
}
echoName();
?>
分析:
上面的代码的结果为:"myname is" 。而不是期望中的:"myname is even "。因为函数没有传递参数$name的值,企图引用外部变量,不会成功。这时候考虑使用global。
于是将上述代码改为
global $name="even";//用global声明的同时赋值
function echoName()
{
//试图引用函数外面的变量
echo "myname is ".$name."
";
}
echoName();
?>
结果为:Parse error: syntax error, unexpected '=', expecting ',' or ';' in D:\phpserver\www\test\test.php on line 2
也即上述代码有错误。原因是不能在用global声明变量的同时给变量赋值。
再次更改上述代码:
global $name;
$name="even";//将global声明与赋值分开
function echoName()
{
//试图引用函数外面的变量
echo "myname is ".$name."
";
}
echoName();
?>
但是得到的结果依然为:"myname is" 。
原因是global的用法不对,global的正确用法是:"在一个函数中引入外部的一个变量,如果该变量没有通过参数传递进来,那么就通过global引入进来。" 也就是说,当一个函数引用一个外部变量时,可以在函数内通过global来声明该变量,这样该变量就可以在函数中使用了(相当于当作参数传递进来)。
于是进一步改动上述代码:
$name="even";//定义变量name,并初始化
function echoName()
{
//通过global来声明$name,相当于传递参数
global $name;
echo "myname is ".$name."
";
}
echoName();
?>
此时得到期望中的结果:"myname is even "。
以上代码说明,global是起传递参数的作用,而并非使变量的作用域为全局。以下代码证明了这一点:
$name="even";//声明变量$name,并初始化
function echoName1()
{
//在函数echoName1()里使用global来声明$name
global $name;
echo "the first name is ".$name."
";
}
function echoName2()
{
//在函数echoName2()里没有使用global来声明$name
echo "the second name is ".$name."
";
}
echoName1();
echoName2();
?>
结果为:
the first name is even
the second name is
上面的结果说明在函数echoName2()中,$name变量仍然是未知的,因为没有用global来声明,也就没有传递进去。同时也证明了global的作用并不是使变量的作用域为全局。
综上,global的作用就相当于传递参数,在函数外部声明的变量,如果在函数内想要使用,就用global来声明该变量,这样就相当于把该变量传递进来了,就可以引用该变量了。
当然,除了通过上述方法外,还可以使用全局数组$GLOBALS来解决问题,在需要用到外部变量的地方,使用$GLOBALS['var']就可以了。例:
$name="even";//定义变量name,并初始化
function echoName()
{
//通过全局数组$GLOBALS来引用外部变量
echo "myname is ".$GLOBALS['name']."
";
}
echoName();
?>
得到的结果为: myname is even 。
另外,在使用global和$GLOBALS的时候,要注意大小写问题,如果大小写错误,则关键字就不能起作用。

PHP仍然流行的原因是其易用性、灵活性和强大的生态系统。1)易用性和简单语法使其成为初学者的首选。2)与web开发紧密结合,处理HTTP请求和数据库交互出色。3)庞大的生态系统提供了丰富的工具和库。4)活跃的社区和开源性质使其适应新需求和技术趋势。

PHP和Python都是高层次的编程语言,广泛应用于Web开发、数据处理和自动化任务。1.PHP常用于构建动态网站和内容管理系统,而Python常用于构建Web框架和数据科学。2.PHP使用echo输出内容,Python使用print。3.两者都支持面向对象编程,但语法和关键字不同。4.PHP支持弱类型转换,Python则更严格。5.PHP性能优化包括使用OPcache和异步编程,Python则使用cProfile和异步编程。

PHP主要是过程式编程,但也支持面向对象编程(OOP);Python支持多种范式,包括OOP、函数式和过程式编程。PHP适合web开发,Python适用于多种应用,如数据分析和机器学习。

PHP起源于1994年,由RasmusLerdorf开发,最初用于跟踪网站访问者,逐渐演变为服务器端脚本语言,广泛应用于网页开发。Python由GuidovanRossum于1980年代末开发,1991年首次发布,强调代码可读性和简洁性,适用于科学计算、数据分析等领域。

PHP适合网页开发和快速原型开发,Python适用于数据科学和机器学习。1.PHP用于动态网页开发,语法简单,适合快速开发。2.Python语法简洁,适用于多领域,库生态系统强大。

PHP在现代化进程中仍然重要,因为它支持大量网站和应用,并通过框架适应开发需求。1.PHP7提升了性能并引入了新功能。2.现代框架如Laravel、Symfony和CodeIgniter简化开发,提高代码质量。3.性能优化和最佳实践进一步提升应用效率。

PHPhassignificantlyimpactedwebdevelopmentandextendsbeyondit.1)ItpowersmajorplatformslikeWordPressandexcelsindatabaseinteractions.2)PHP'sadaptabilityallowsittoscaleforlargeapplicationsusingframeworkslikeLaravel.3)Beyondweb,PHPisusedincommand-linescrip

PHP类型提示提升代码质量和可读性。1)标量类型提示:自PHP7.0起,允许在函数参数中指定基本数据类型,如int、float等。2)返回类型提示:确保函数返回值类型的一致性。3)联合类型提示:自PHP8.0起,允许在函数参数或返回值中指定多个类型。4)可空类型提示:允许包含null值,处理可能返回空值的函数。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具

Atom编辑器mac版下载
最流行的的开源编辑器

ZendStudio 13.5.1 Mac
功能强大的PHP集成开发环境