PHP群里有人询问 self 关键字的用法,答案是比较明显的:静态成员函数内不能用 this 调用非成员函数,但可以用 self 调用静态成员函数/变量/常量;其他成员函数可以用 self 调用静态成员函数以及非静态成员函数...但是其与 self 关联上是PHP 5.3以来引入的新用途:静态延迟绑定。 有了 static 的静态延迟绑定功能,可以在运行时动态确定归属的类。...在函数引用上, self 与 static 的区别是:对于静态成员函数, self 指向代码当前类, static 指向调用类;对于非静态成员函数, self 抑制多态,指向当前类的成员函数, static...此行为貌似在不同PHP版本中表现不同,在当前的7.3中ok; 在静态函数和非静态函数中输出 self ,猜猜结果是什么?...参考 When to use self over $this? 原文:https://www.tlanyan.me/self-in-php/
{一}PHP中this,self,parent的区别之一this篇 面向对象编程(OOP,Object OrientedProgramming)现已经成为编程人员的一项基本技能。...php classname //建立了一个名为name的类 { private$name; //定义属性,私有 //定义构造函数,用于初始化赋值...PHP中this,self,parent的区别之二self篇 此篇我们就self的用法进行讲解 首先我们要明确一点,self是指向类本身,也就是self是不指向任何已经实例化的对象,一般self使用来指向类中的静态变量...{三}PHP中this,self,parent的区别之三parent篇 此篇我们就parent的用法进行讲解。...php //建立基类Animal class Animal { public $name; //基类的属性,名字$name //基类的构造函数,初始化赋值 public
php中self与static的区别 通过一些示例,我们可以很容易看出self和static的区别。假定我们有class Car – 它有两个方法,model和getModel。...注意,这里我们使用了关键字self。...static关键字和延迟静态绑定(late static binding) 在PHP5.3中,加入了一个新的特性,叫做延迟静态绑定。它可以帮我们实现多态,解决上面的问题。...php 5.3以下的版本无法使用延迟静态绑定 注意,php 5.3之前的版本无法使用延迟静态绑定。如果尝试在php 5.3以下的版本运行上面的例子,将会报错。...php中的self和static 现在我们将例子中的self用static替换,可以看到,两者的区别在于:self引用的是当前类(current class)而static允许函数调用在运行时绑定调用类
__len__ 如果一个类表现得像一个list,要获取有多少个元素,就得用 len() 函数。要让 len() 函数工作正常,类必须提供一个特殊方法__len__(),它返回元素的个数。...例如,我们写一个 Students 类,把名字传进去:class Students(object): def __init__(self, *args): self.names =...args def __len__(self): return len(self.names)只要正确实现了__len__()方法,就可以用len()函数返回Students实例的“长度...): L.append(a) a, b = b, a + b self.numbers = L def __str__(self):...return str(self.numbers) __repr__ = __str__ def __len__(self): return len(self.numbers)f
再谈PHP中的self与static 之前的文章中有介绍过self、static和parent的传递问题。今天,通过一个小实验,我们来看看self和static操作变量的问题。...)方法,所以B类调用selfName()时调用的是父类A的selfName()方法,self在这个方法中指向的是A类。...测试代码:https://github.com/zhangyue0503/dev-blog/blob/master/php/201912/source/%E5%86%8D%E8%B0%88PHP%E4%...B8%AD%E7%9A%84self%E4%B8%8Estatic.php 参考文档:https://www.cnblogs.com/mr-amazing/p/5953227.htmlhttps://www.php.net.../manual/zh/language.oop5.constants.php
在php的面向对象编程中,总会遇到 class test{ public static function test(){ self::func(); static::func();...} public static function func(){} } 可你知道self和static的区别么?...其实区别很简单,只需要写几个demo就能懂: Demo for self: class Car { public static function model(){ self::getModel...在PHP5.3版本以前,static和self还是有一点区别,具体是什么,毕竟都是7版本的天下了。就不去了解了。...总结呢就是:self只能引用当前类中的方法,而static关键字允许函数能够在运行时动态绑定类中的方法。
; } PHP中函数是全局的,只要定义了就可以在任何地方调用 函数内部可以写任何有效的PHP代码,就算定义函数和类也是可以的 PHP不支持函数重载,也不能取消定义和重写义已声明函数 递归调用时,要避免超过...php function foo() { return ['one', 'two']; } list($a, $b) = foo(); 函数返回引用类型值时,函数声明和函数调用前都必须加& php function &foo() { $a = 1; return $a; } $b = &foo(); 可变函数 如果变量名后有(),PHP将寻找与变量的值同名的函数,并尝试执行...PHP有很多内置函数,有些函数是需要和特定的扩展一起编译 function_exists()判断函数是否存在 get_extension_funcs()获取某个模块的函数列表 dl()加载模块 匿名函数...sub>PHP 7.4 箭头函数跟匿名函数一样,都是通过Closure实现,只是比匿名函数更简洁,也只能实现比较简单的功能 箭头函数会自动捕获父作用域变量进行值拷贝 <?
请点击上面蓝色PHP关注 你知道这些简单的函数中的方法吗? count() 函数计算数组中的单元数目或对象中的属性个数。 对于数组,返回其元素的个数,对于其他值,返回 1。...规定函数的模式。可能的值:0 - 默认。不检测多维数组(数组中的数组)。1 - 检测多维数组。注释:该参数是 PHP 4.2 中加入的。 0 - 默认。不检测多维 数组(数组中的数组)。...注释:该参数是 PHP 4.2 中加入的。 注释:当变量未被设置,或是变量包含一个空的数组,该函数会返回 0。可使用 isset() 变量来测试变量是否被设置。...strtr() 函数转换字符串中特定的字符。 strtr(string,from,to);或者strtr(string,array); 参数 描述 string 必需。...php echo strtr("Hilla Warld","ia","eo"); ?> 输出:Hello World 例: <?
PHP函数 定义函数 基本语法: function 函数名 (参数1,参数2...){ 函数主体; [return] } 调用函数 function test1 (){ echo..."函数被调用"; } test1();//调用函数 函数的参数 PHP参数传递有三种: 1、值传递:将实参的值传给形参 php function text2($value){ $value *=3; echo $value.'...变量 说明 局部变量 在函数内部定义的函数,只能在函数内部使用 全局变量 在函数外部定义的函数,能在整个PHP文件使用,但在用户定义的函数内使用需要加global关键字 静态变量 在函数调用完毕后依然保留变量值的变量...,在调用时需要加static关键字声明变量 可变函数 可变函数类似于可变变量,通过在变量名后面添加一对括号,PHP就会自动寻找与变量名的值相同的函数,并且执行该函数 <?
PHP strip_tags() 函数 定义和用法 strip_tags() 函数剥去字符串中的 HTML、XML 以及 PHP 的标签。防注入 注释:该函数始终会剥离 HTML 注释。...复制代码 PHP stripslashes() 函数 定义和用法 stripslashes() 函数删除反斜杠,删除由 addslashes() 函数添加的反斜杠。...复制代码 PHP trim() 函数 定义和用法 trim() 函数移除字符串两侧的空白字符或其他预定义字符。...serialize() 函数 serialize() 函数用于序列化对象或数组,并返回一个字符串。...PHP 版本要求: PHP 4, PHP 5, PHP 7 语法 string serialize ( mixed $value ) 复制代码 参数说明: $value: 要序列化的对象或数组。
简介 在使用PHP代码时,您可能经常会遇到parent::、static::和self::。但是当你第一次作为一个开发人员开始的时候,有时候你会很困惑,不知道它们是做什么的,以及它们之间的区别。...因此,我们需要告诉PHP在BaseTestCase中使用setUp方法,而不是使用this->setUp()。...这是由于PHP中一个名为“后期静态绑定”的特性。 如果您有兴趣阅读更多关于后期静态绑定的内容,可以在这里查看PHP文档。...https://www.php.net/manual/en/language.oop5.late-static-bindings.php 根据PHP文档:这个特性被命名为“后期静态绑定”,从内部的角度考虑...什么时候使用self::或 static::? 现在我们对self::和static::之间的区别有了一个大致的了解,让我们快速介绍一下如何决定在自己的代码中使用哪一个。
'条'); } feof() 函数检查是否已到达文件末尾(EOF)。...提示和注释 提示:feof() 函数对遍历长度未知的数据很有用。 ---- 实例 php $file = fopen("test.txt", "r"); //Output a line of the file until the end is reached while(!
> 定义和用法 extract() 函数从数组中将变量导入到当前的符号表。 该函数使用数组键名作为变量名,使用数组键值作为变量值。针对数组中的每个元素,将在当前符号表中创建对应的一个变量。...第二个参数 type 用于指定当某个变量已经存在,而数组中又有同名元素时,extract() 函数如何对待这样的冲突。 该函数返回成功导入到符号表中的变量数目。...extract() 函数将检查每个键名是否为合法的变量名,同时也检查和符号表中已存在的变量名是否冲突。对不合法和冲突的键名的处理将根据此参数决定。可能的值:EXTR_OVERWRITE - 默认。...PHP 版本: 4+ 更新日志: extract_rules 的值 EXTR_REFS 是在 PHP 4.3 中新增的。...自 PHP 4.0.5 起,该函数返回成功导入到符号表中的变量数目。extract_rules 的值 EXTR_PREFIX_INVALID 是在 PHP 4.0.5 中新增的。
php $people = array("Bill", "Steve", "Mark", "David"); echo current($people) ....> 定义和用法 end() 函数将数组内部指针指向最后一个元素,并返回该元素的值(如果成功)。 语法 end(array) 参数 描述 array 必需。规定要使用的数组。...PHP 版本: 4+ 更多实例 例子 1 演示所有相关的方法: php $people = array("Bill", "Steve", "Mark", "David"); echo current($people) .
php $age=array("Bill"=>"60","Steve"=>"56","mark"=>"31"); krsort($age); ?...> 定义和用法 krsort() 函数对关联数组按照键名进行降序排序。 语法 krsort(array,sortingtype); 参数 描述 array 必需。规定要进行排序的数组。...说明 krsort() 函数将数组按照键逆向排序,为数组值保留原来的键。 可选的第二个参数包含附加的排序标志。 若成功,则返回 TRUE,否则返回 FALSE。...PHP 版本: 4+
php $age=array("Bill"=>"60","Steve"=>"56","mark"=>"31"); ksort($age); ?...> 定义和用法 ksort() 函数对关联数组按照键名进行升序排序。 语法 ksort(array,sortingtype); 参数 描述 array 必需。规定要进行排序的数组。...说明 ksort() 函数按照键名对数组排序,为数组值保留原来的键。 可选的第二个参数包含附加的排序标志。 若成功,则返回 TRUE,否则返回 FALSE。...PHP 版本: 4+
函数可分为: 随机数函数 绝对值函数 最大最小值函数 取整函数 取余函数 平方次方函数 三角函数 进制转换函数 随机数函数 函数 说明 Rand($min,$max) 返回指定范围内的随机数 Mt_rand...($min,$max) 返回指定范围内的随机数(推荐使用) 绝对值函数 函数 说明 Abs($number) 返回数字的绝对值 最大最小值函数 函数 说明 Min() 返回最小值 Max() 返回最大值...取整函数 函数 说明 Round($float) 四舍五入函数 Floor($float) 舍去取整函数 Ceil($float) 进一取整函数 取余函数 函数 说明 Fmod($x,$y) 取余函数...(允许除数为0) 平方次方函数 函数 说明 Pow($base,$exp) 返回$base的$exp次方 Sqrt($number) 返回数字的平方根 三角函数 函数 说明 Deg2rad($number...) 角度转弧度 Sin($number) 返回参数的正弦值 Cos($number) 返回参数的余弦值 Tan($number) 返回参数的正切值 进制转换函数 函数 说明 二进制: bin 八进制:
PHP最初是面向过程语言,有很多内置函数,比如处理字符串、处理数组的函数等。 除了内置函数,我们还需要了解如何自定义函数,函数一个可以实现功能复用的代买块。 函数是一组功能的集合,可以复用。...语法实现;在 PHP 5.5 及更早版本中,使用函数 func_num_args(),func_get_arg(),和 func_get_args() 。 php function sum(......返回语句会立即中止函数的运行,并且将控制权交回调用该函数的代码行。 返回值可以返回各类数类型 四、可变函数 PHP 支持可变函数的概念。...这意味着如果一个变量名后有圆括号,PHP 将寻找与变量的值同名的函数,并且尝试执行它。 <?
创建函数的语法 //function创建函数的关键字 function functionName() { 要执行的代码; } 函数准则 函数的名称应该显示出他的功能 函数的名称必须以字母、下划线开头...,不能以数字开头 无参数,无返回值的函数 1.创建无参数无返回值的函数 //function创建函数的关键字,后面是函数名 function writeName() { //执行的代码块 ...echo "kai jim refsnes"; } echo "my name is "; //调用函数 writeName(); 结果输出: my name is kai jim refsnes...有参数,无返回值的函数 1.创建有单个参数,无返回值的函数 function writeName2($fname) { //执行的代码块 echo $fname . "....<br>"; } echo "my name is "; writeName2("lianst"); 结果输出: my name is lianst. 2.创建有多个参数,无返回值的函数
php $age=array("Bill"=>"60","Steve"=>"56","Mark"=>"31"); arsort($age); ?...> 定义和用法 arsort() 函数对关联数组按照键值进行降序排序。 语法 arsort(array,sortingtype); 参数 描述 array 必需。规定要进行排序的数组。...说明 arsort() 函数对数组进行逆向排序并保持索引关系。主要用于对那些单元顺序很重要的结合数组进行排序。 可选的第二个参数包含了附加的排序标识。
领取专属 10元无门槛券
手把手带您无忧上云