废弃一PHP4风格的构造函数
- 在 PHP4 中类中的函数可以与类名同名,这一特性在 PHP7 中被废弃。
- 错误产生的条件:
- 当方法名与类名相同
- 且类不在命名空间中
- 构造函数(__construct)不存在时
<?php
namespace March_27;
class Person
{
private $name;
private $age;
function person($name, $age)
{
$this->name = $name;
$this->age = $age;
}
}
var_dump(new Person('向上', 24));
/*
object(March_27\Person)[1]
private 'name' => null
private 'age' => null
*/
/*
上面的代码使用了命名空间,避免方法名称和类名称相同时抛出错误,抛出一个E_DEPRECATED 错误。
但是即如此,但是这个方法还是充当不了构造函数的作用,所以说:我们完全没有必要在类中去写和类名
称相同的方法。
*/
废弃一静态方式调用非静态方法
- 结果如下:
- 类对象调用静态方法:可以不报错
- 静态方式调用非静态的方法:显示的是不赞成,但是方法还是会调用执行的。
- 我们可以看出,PHP对于一静态方式调用非静态方法,还是很宽松的。虽然不赞成,但是还是会运行
<?php
class Test
{
public static function fun1()
{
print('fun1()');
}
public function fun2()
{
print('fun2()');
}
}
// 静态方式调用非静态的方法
Test::fun2();
// 对象调用静态方法
(new Test())->fun1();
/*
Deprecated: Non-static method Test::fun2() should not be called statically
in D:\wamp64\www\numb\2020-3-27\demo-03.php on line 16
fun2()fun1()
*/
password_hash() 随机因子选项
- 函数原 salt 量不再需要由开发者提供了。函数内部默认带有 salt 能力,无需开发者提供 salt 值。
capture_session_meta SSL 上下文选项
- 废弃了 “capture_session_meta” SSL 上下文选项。 在流资源上活动的加密相关的元数据可以通过 stream_get_meta_data() 的返回值访问。