Tips:在PHP函数中使用全局变量,要通过global关键字将这个 全局变量包含到函数中才能使用 $a = 1; $b = 2; function demo($a = '') { //global...静态变量只能在函数或类中声明,不能在全局声明 function demo($a = '') { static $a = 0; //定义静态变量 $a++; echo "$ac'); // 3 func_get_arg():返回参数列表中的第N个参数 function Test() { echo func_get_arg(...A,但是我们不直接去调函数A, 而是在函数B中去调用函数A,函数B通过接收函数A的 名字和参数来实现对函数A的调用,函数A称为回调函数。...回调函数的实现方法 php提供了两个内置函数call_user_func()和 call_user_func_array()提供对回调函数的支持 //mixed call_user_func_array
php sum(1); function sum($a,$b=6) { $c=$a+$b; echo($c); } ?> 效果:7 如果在实际工作中,实际参数的数量多于了形式参数怎么办呢? 效果:3 可变参数: 可变函数:一个变量的值刚好是一个函数的名 字,那么在调用的时候,就可以通过变量来调用函数。 我代码示例把: php $a="lw";//一个变量的值等于 $a();//一个变量的名啊(核心:加个括号即可) function lw() { echo "贵哥牛逼"; } ?> 效果:贵哥牛逼 匿名函数; <?...(外面我是老大)) 局部变量:定义再函数内部,只能在函数内部使用。(内部我是老大) 超全局变量:PHP定义好的,我们直接使用就可以了。(内外部我都是大佬,说一不二的) //在函数内部不能使用,会报错哦 Notice: Undefined variable: a in C:\xampp\htdocs\2.php on line 6 <?
在PHP中getenv(参数)函数是一个用于获取环境变量的函数,根据提供不同的参数可以获取不同的环境变量,具体如下: “PHP_SELF” 当前正在执行脚本的文件名,与document root 相关。...如果PHP 以命令行方式运行,该变量在PHP 4.3.0 之前无效。 “argv” 传递给该脚本的参数。当脚本运行在命令行方式时,argv 变量传递给程序C 语言样式的命令行参数。...“QUERY_STRING” 查询(query)的字符串(URL 中第一个问号? 之后的内容)。 “DOCUMENT_ROOT” 当前运行脚本所在的文档根目录。在服务器配置文件中定义。... 服务器常量中。...“PHP_AUTH_DIGEST” 当作为Apache 模块运行时,进行HTTP Digest 认证的过程中,此变量被设置成客户端发送的“Authorization”HTTP 头内容(以便作进一步的认证操作
在 PHP 中,只有 \0(NULL),\r(回车符),\n(换行符)和 \t(制表符)是预定义的转义序列, 而在 C 语言中,上述的所有转换后的字符都是预定义的转义序列。...该选项可在运行的时改变,在 PHP 中的默认值为 off。 代码示例: <?...(3)不便 由于不是所有数据都需要转义,在不需要转义的地方看到转义的数据就很烦。比如说通过表单发送邮件,结果看到一大堆的 \’。针对这个问题,可以使用 stripslashes() 函数处理。...0X08 mysqli_real_escape_string/mysqli_escape_string –> (PHP >= 5 ,PHP 7) 此函数用来对字符串中的特殊字符进行转义, 以使得这个字符串是一个合法的...尽管你可以在构造函数里设置字符集(charset ),但你也要注意旧版本的PHP(中设置的字符集参数。 解释 到底发生了什么呢?
回调函数和匿名函数 回调函数、闭包在JS中并不陌生,JS使用它可以完成事件机制,进行许多复杂的操作。PHP中却不常使用,今天来说一说PHP中中的回调函数和匿名函数。...好处是函数作为值使用起来方便,而且代码简洁,可读性强。 匿名函数: 匿名函数,顾名思义,是没有一个确定函数名的函数,PHP将匿名函数和闭包视作相同的概念(匿名函数在PHP中也叫作闭包函数)。...它的用法,当然只能被当作变量来使用了。 PHP中将一个函数赋值给一个变量的方式有四种: 我们经常会用到的:函数在外部定义/或PHP内置,直接将函数名作为字符串参数传入。...= $right时返回0; $vars中的元素会被取出会被由小到大升序排序。...这个我在之前的博客中也有介绍到:搭建自己的PHP框架心得(二) 总结 其实以上$callback不用单独定义并使用变量引用,使用上面说过的第四种函数定义方式,直接在函数内定义,使用‘完全’匿名函数就行了
PHP中的垃圾回收相关函数 之前我们已经学习过 PHP 中的引用计数以及垃圾回收机制的概念。这些内容非常偏理论,也是非常常见的面试内容。而今天介绍的则是具体的关于垃圾回收的一些功能函数。...比如: $a = new stdClass; $b = new stdClass; $c = new stdClass; echo memory_get_usage(), PHP_EOL; // 706528...,然后使用 gc_status() 来查看当前垃圾回收器中关于循环引用的状态。...这个函数可以在测试环境中对代码的运行情况进行检查,查看我们代码中有没有不正常的循环引用情况,当然,上面的解释也只是个人的推测,因为关于这方面的资料确实非常少。...9E%83%E5%9C%BE%E5%9B%9E%E6%94%B6%E7%9B%B8%E5%85%B3%E5%87%BD%E6%95%B0.php 参考文档: PHP的引用计数是什么意思?
PHP中使用最多的非Array莫属了,那Array是如何实现的?...在PHP内部Array通过一个hashtable来实现,其中使用链接法解决hash冲突的问题,这样最坏情况下,查找Array元素的复杂度为O(N),最好则为1....而其计算字符串hash值的方法如下,将源码摘出来以供查备: ps:对于以下函数,仍有两点不明: 1. hash = 5381设置的理由? 2. 这种step=8的循环方式是为了效率么?...Php代码 static inline ulong zend_inline_hash_func(const char *arKey, uint nKeyLength) { register...ulong hash = 5381; //此处初始值的设置有什么玄机么?
PHP中PRGE正则函数的学习 正则表达式的作用想必不用我多说了,大家在日常的开发中或多或少都会接触到。特别是对于一些登录(邮箱、手机号)以及网页爬虫来说,正则表达式就是神器一般的存在。...在 PHP 中,有两种处理正则表达式的函数,今天我们就来学习其中的一种。...回调替换 除了上面的替换之外,PRGE 的函数库中还有回调式替换的函数,也就是能让我们自定义替换之后的返回结果。...这个函数中的参数就是匹配到的结果,上面的测试代码中我们全部打印了出来。然后给这个函数一个 return 返回值,就是对应地去把替换的结果返回到原值中。.../2021/03/source/6.PHP中PRGE正则函数的学习.php on line 332 // 1 // print_r(preg_last_error_msg()); // php8 而在
PHP中的网络组件相关函数 作为一门以 WEB 开发为主战场的编程语言来说,PHP 即使是在目前这个大环境下,依然也是 WEB 领域的头号玩家。...主机 IP 信息 一般要查看某个域名的解析对应 IP ,我们可以通过系统的 PING 命令来快速查看,而在 PHP 中,也有对应的函数可以获得某个域名指向的主机 IP 信息。...而 headers_list() 则会显示我们或者 PHP 程序中额外添加的头信息内容,比如 X-Powered-By 这个信息是默认情况下 php -S 这个简单服务器命令自带的一个头信息。...总结 在官方文档中的网络相关的扩展函数就是这些了,当然,还有一个大头我们没有介绍,那就是 socket 相关的内容。...E7%BD%91%E7%BB%9C%E7%BB%84%E4%BB%B6%E7%9B%B8%E5%85%B3%E5%87%BD%E6%95%B0.php 参考文档: https://www.php.net
PHP中的日期相关函数(一) 日期相关的操作函数是我们在日常的工作开发中最常接触到的功能。...本身在对手册文档的学习中,就是要发掘有意思的或者没有接触过的一些功能函数,所以我们今天的学习的函数可能是大家都没怎么用过的,甚至可能很多大家都没见过的。 时区类相关函数 首先就是时区类的一个对象。...这里我们给的就是通用的中国时区的设置,虽说我们的国际标准时区是东八区的北京时间,但在 PHP 中的时区格式中,我们的时区是以上海为命名的。...具体的规则大家还是去看文档中的说明:https://www.php.net/manual/zh/dateinterval.construct.php。...测试代码: https://github.com/zhangyue0503/dev-blog/blob/master/php/202009/source/12.PHP中的日期相关函数(一).php 参考文档
PHP中的日期相关函数(三) 之前我们已经介绍过了 PHP 的一些相关的日期操作对象,今天我们就来学习剩下的那些面向过程的使用方式。...,它与 C 函数调用返回的完全一样,如果将第二个参数设置为 true 的话,返回的数组键就是英文的键名形式的内容。...%C 表示的是世纪,和我们真实对应的世纪需要加1,比如代码中返回的是 20 ,实际上我们现在是 21 世纪。%R 返回的是 H:i 这个格式,%U 返回的是第几周。...当然,学习只是一方面,首先你要记得在 PHP 中已经提供了这些函数,然后再在实际的业务场景中进行应用,这样才能说是真正地熟练地掌握了这些内容,别的不多说了,赶紧用起来吧。...测试代码: https://github.com/zhangyue0503/dev-blog/blob/master/php/202010/source/1.PHP中的日期相关函数(三).php 参考文档
PHP中的日期相关函数(二) 上回文章中我们介绍了三个时间日期相关的对象,不过它们的出镜频率并不是特别地高。今天学习的对象虽说可能不少人使用过,但是它的出镜频率也是非常低的。...它们其实就是我们非常常用的那些面向过程的日期函数的面向对象式的封装。...; echo $interval->format('%R%a days'), PHP_EOL; // 18 days // -18 days diff() 方法就是返回两个日期之间的差值,相信这个方法不少人使用过它的面向过程的函数...,也就是 date_diff() 函数,相对于其它方法来说,它的出镜率就非常高了。...测试代码: https://github.com/zhangyue0503/dev-blog/blob/master/php/202009/source/13.PHP中的日期相关函数(二).php 参考文档
匿名函数中的use,其作用就是从父作用域继承变量。 下例是最常见的用法,如果不使用use,函数中将找不到变量$msg。 运行输出 PHP Notice: Undefined variable: msg in /search/ballqiu/c.php on line 4 可见,继承变量的行为是在函数定义时产生的。...---- 关于use中使用引用传值 我们知道,在匿名函数的use中如果使用引用传值,那么匿名函数中对参数值的改变会同样影响外部相应变量。比如下面的例子: 函数中变量值的改变同样会影响到外部相关变量。...---- 关于class中匿名函数里的this及use <?
php $test1 = function($value) { echo $value; }; $test1('HelloWorld'); ?> 不懂你们有没有一种感觉,看见了js?...近视的我,看到了function 就以为js… 好了,你看看最开始,是不是一个test1变量右边一个赋值符号,然后赋值符号(=号)的右边是一个函数?...这个函数接收一个参数value,那么这个就是匿名函数,我们使用的时候直接用test1就OK了。...我们函数里面的内容是输出我们参数,我们使用test1传入参数‘HelloWorld’我们运行以下,发现输出了HelloWrold 如果我们要使用这个匿名函数之外的变量,如以下代码,我们要使用use语言结构...php $n=1; $test1 = function($value)use ($n) { echo $value.' and '.
然后介绍基本用法和使用场景,让读者对其有大体了解,为实际使用中奠定基础。 字节和字符 PHP的优势是简单易用,熟练运用 字符串 和 数组 相关函数就能抗住一般的需求。...日常工作中多用到字符串,所以PHP开发对字符都比较熟悉,稍微资深点基本能也能弄清字符编码。但字符的伴生概念:字节,不少PHP开发并不知晓/熟悉。 这不怪他们。...那怎么知道机器的字节序呢?PHP没有提供相关功能,也不能像 C 语言直接取地址访问字节数据。无所不能的PHP该怎么搞定字节序,或者说完成数据向字节的转换?...除这两个函数,字节数组(或二进制数据)向数据的转换几无可能(如果有请不吝指教)。 现在我们用 pack 函数获取42在内存中的字节数组。...不同之处在于 pack 函数的格式中 不能出现元字符和量词外的其他字符 ,所以不需要 % 符号。
即将在下个月底发布的PHP 7.4中一个有趣的功能之一是期待已久的FFI(外部函数接口)支持。PHP 7.4的FFI允许开发人员可以从本地PHP代码中调用C编程语言中定义的函数/变量/数据结构。...FFI是与预加载特性、加强PHP FPM systemd服务、针对OpenSSL流的TLS 1.3以及许多其他更改一起出现在PHP 7.4中的重要新特性之一。...PHP 7.4 FFI方法可以与其他语言的FFI实现相媲美。 ? 继续使用PHP FFI应该会减少编写新的PHP模块来与C库/程序交互的需求,而现在可以使用外部函数接口来完成。...对于那些对PHP 7.4 FFI的示例代码/示例感到好奇的人,Fedora/RedHat PHP packager Remi Collet已经写了一篇新的 博客文章 ,其中概述了一些带有示例代码的用例。...那些希望更多地了解PHP 7.4 FFI支持的人也可以查看 PHP.net 上的文档及其 基本示例 。在11月28日正式发布之前,还会有更多的PHP 7.4候选版本。
phpredis是php的一个扩展,效率是相当高有链表排序功能,对创建内存级的模块业务关系 很有用;以下是redis官方提供的命令使用技巧: 下载地址如下: https://github.com/owlient...(元素已按score从大到小排序)中的index从start到end的所有元素.withscores: 是否输出socre的值,默认false,不输出 redis−>zAdd(‘key′,0,‘val0...zRevRank 是从大到小排序 zIncrBy $redis->zIncrBy(‘key’, increment, ‘member’); 如果在名称为key的zset中已经存在元素member,则该元素的...('key',$max,$min[,$config]);//查,通过scroe权范围拿member值,返回有序集key中,指定区间内的(从大到小排)成员[array | null] $redis-...>zrank('key','member');//查,通过member值查(score从小到大)排名结果中的【member排序名次】[order | null] $redis->zrevrank(
strstr()函数是PHP中的一个内置函数,语法为strstr(string,search,before_search) ,用于搜索字符串在另一字符串中是否存在,如果是,返回该字符串及剩余部分,...此函数区分大小写。 php strstr()函数怎么用? strstr() 函数搜索字符串在另一字符串中是否存在,如果是,返回该字符串及剩余部分,否则返回 FALSE。...注:该函数是二进制安全的;该函数区分大小写。...返回值:该函数返回字符串的其余部分(来自匹配点),如果找不到要搜索的字符串,则返回FALSE。 下面通过示例来看看php strstr()函数的使用方法。 示例1:php echo strstr(“Hello world!”,”o”); ?> 输出:o world! 示例2:php echo strstr(“Hello world!”
让PHP能够调用C的函数-FFI扩展 在大型公司中,一般会有很多编程语言的配合。比如说让 Java 来做微服务层,用 C++ 来进行底层运算,用 PHP 来做中间层,最后使用 JS 展现效果。...使用 FFI 调用 C 的函数 接下来,简单地看一下它是如何调用 C 的函数的。...也就是我们需要的 .dll 或 .so 文件,它与我们声明字符串是对应的,比如在 libc.so.6 中并没有 pow() 这类的计算函数,所以我们就要找到 math 相关的 C 语言计算函数库。...C 的数据结构,也就是变量声明,这些变量的内容将保存在 cdata 属性中。...但是请注意哦,FFI 调用的 C 函数并没有 PHP 本身去调用的效率高。比如这种 pow() 函数,使用 PHP 自身的效率更好。
PHP中的文件系统函数(二) 这次我们来学习的是一些不是太常用,但却也非常有用的一些函数。它们中有些大家可能见过或者使用过,有一些可能就真的没什么印象了。...它们都是 PHP 中文件系统相关操作函数的一部分。存在即合理,或许只是我们的业务开发中还没有接触到而已。...最后就是 unlink() 函数。在 PHP 中,没有 delete 或者 rm 这样的函数,unlink() 就是用于删除文件的。...', $c)); // int(8) file_exists() 函数是专业的用于判断文件是否存在的函数,上面的 is_file() 会更多地用于上传之后的操作。...需要使用 ob_start() 之类的函数才能将 readfile() 函数读取的内容放到一个变量中,我们之前的文章也专门讲过缓冲区的概念,公众号回复【PHP中的输出缓冲控制】 。
领取专属 10元无门槛券
手把手带您无忧上云