php涨知识的点

一、fastcgi_finish_request()

这个函数比较牛皮,可以在执行返回客户端后,继续执行操作。需要注意两点:
1、必须时通过fpm的方式来才能有效
2、数据客户端后本进程仍然在执行,并未退出
3、如果处理时间较长需要设置set_time_limit(0);

<?php
echo time();
if (function_exists("fastcgi_finish_request")){
	fastcgi_finish_request();
	sleep(1);
		file_put_contents("log.txt", time()."\r\n",FILE_APPEND);
		for ($i=0;$i < 10;$i++){
			file_put_contents("log.txt", "$i\r\n",FILE_APPEND);
		}
}
?>

二、ArrayObject()

一直很少用该函数,所以对其基本没有了解。该函数主要提供来通过数组和对象两种方式进行访问

数组方式访问
$obj = new ArrayObject(array(),ArrayObject::STD_PROP_LIST);
对象和数组方式同时访问
$obj = new ArrayObject(array(),ArrayObject::ARRAY_AS_PROPS);

同时该类中提供来offset等方式来进行访问。主要的实现了ArrayAccess

ArrayObject implements IteratorAggregate, ArrayAccess, Serializable, Countable

三、父类与子类相互使用的问题

一直以来以为,子类继承父类,只能子类使用父类的方法,通过实践发现,父类也可以使用子类的方法,比如

<?php
abstract class A {

	public function __construct() {
		
		$this->params();
		print_r($this->cu_debug_iccid_list);
	}

	 protected function params(){
	 	print_r("parent");
	 }
}

class B extends A {
	public $cu_debug_iccid_list = 1;
	public function __construct() {
		parent::__construct();
	}

	protected function params() {
		 print_r("what a pity");
	}
}

$b = new B();
?>

四、实例化对象作为参数传递

<?php
class A{
	public $key = 1;
}

class B{
	public function t($a){
		$a->key = 2;
	}
}

$_a = new A();
$_b = new B();
$_b->t($_a);
print_r($_a->key); // 2
?>

参考php手册看看吧 https://www.php.net/manual/zh/language.oop5.references.php
https://segmentfault.com/q/1010000010641993?_ea=2363326

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值