在本函数没什么用处,因为每次调用时都会将 $w3sky 的值设为 0 并输出 "0"。将变量加一的 $w3sky++ 没有作用,因为一旦退出本函数则变量 $w3sky 就不存在了。要写一个不会丢失本次计数值的计数函数,要将变量 $w3sky 定义为静态的:
例子 使用PHP静态变量static的例子
<ol class="dp-xml"> <li class="alt"><span><span class="tag"><span> ?PHP </span></span></span></li> <li><span>function Test(){ </span></li> <li class="alt"> <span>static $</span><span class="attribute">w3sky</span><span> = </span><span class="attribute-value">0</span><span>; </span> </li> <li><span>echo $w3sky; </span></li> <li class="alt"><span>$w3sky++; </span></li> <li><span>} </span></li> <li class="alt"> <span class="tag">?></span><span> </span> </li> </ol>
现在,每次调用 Test() 函数都会输出 $w3sky 的值并加一。
静态变量也提供了一种处理递归函数的方法。递归函数是一种调用自己的函数。写递归函数时要小心,因为可能会无穷递归下去。必须确保有充分的方法来中止递归。一下这个简单的函数递归计数到 10,使用静态变量 $count 来判断何时停止:
例子 PHP静态变量static与递归函数
<ol class="dp-xml"> <li class="alt"><span><span class="tag"><span> ?PHP </span></span></span></li> <li><span>function Test(){ </span></li> <li class="alt"> <span>static $</span><span class="attribute">count</span><span> = </span><span class="attribute-value">0</span><span>; </span> </li> <li><span>$count++; </span></li> <li class="alt"><span>echo $count; </span></li> <li> <span>if ($count </span><span class="tag"><span> </span><span class="tag-name">10</span><span>) { </span></span> </li> <li class="alt"><span>Test(); </span></li> <li><span>} </span></li> <li class="alt"><span>$count--; </span></li> <li><span>} </span></li> <li class="alt"> <span class="tag">?></span><span> </span> </li> </ol>
注: 静态变量可以按照上面的例子声明。如果在声明中用表达式的结果对其赋值会导致解析错误。
例子 声明PHP静态变量static
<ol class="dp-xml"> <li class="alt"><span><span class="tag"><span> ?PHP </span></span></span></li> <li><span>function foo(){ </span></li> <li class="alt"> <span>static $</span><span class="attribute">int</span><span> = </span><span class="attribute-value">0</span><span>;// correct </span> </li> <li> <span>static $</span><span class="attribute">int</span><span> = </span><span class="attribute-value">1</span><span>+2; // wrong (as it is an expression_r_r) </span> </li> <li class="alt"> <span>static $</span><span class="attribute">int</span><span> = </span><span class="attribute-value">sqrt</span><span>(121); // wrong (as it is an expression_r_r too) </span> </li> <li><span>$int++; </span></li> <li class="alt"><span>echo $int; </span></li> <li><span>} </span></li> <li class="alt"> <span class="tag">?></span><span> </span> </li> </ol>

本文讨论了PHP中的crypt()和password_hash()之间的差异,以进行密码哈希,重点介绍其实施,安全性和对现代Web应用程序的适用性。

文章讨论了通过输入验证,输出编码以及使用OWASP ESAPI和HTML净化器之类的工具来防止PHP中的跨站点脚本(XSS)。

自动加载PHP会在需要时自动加载类文件,从而通过减少内存使用和增强代码组织来提高性能。最佳实践包括使用PSR-4和有效组织代码。

本文讨论了在PHP中管理文件上传大小的管理,重点是2MB的默认限制以及如何通过修改PHP.INI设置来增加它。

本文讨论了PHP 7.1中引入的PHP中的无效类型,允许变量或参数为指定类型或NULL。它突出显示了诸如提高可读性,类型安全性和明确意图的好处,并解释了如何声明

本文讨论了unset()和unlink()功能在编程中的差异,重点关注其目的和用例。 unset()从内存中删除变量,而unlink()从文件系统中删除文件。两者都对效率至关重要


热AI工具

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

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

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SublimeText3汉化版
中文版,非常好用

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

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

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能