《php核心技术与最佳实践》笔记2

关于php中的魔术方法

魔术方法是以"__"开头的、具有特殊作用的一些方法​,可以看做php的语法糖。语法糖定义,还有语法盐,语法糖精,维基百科上都有。

语法糖(Syntactic sugar),也译为糖衣语法,是由英国计算机科学家彼得·约翰·兰达(Peter J. Landin)发明的一个术语,指计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。通常来说使用语法糖能够增加程序的可读性,从而减少程序代码出错的机会。

__construct()方法用于创建对象时对对象的属性进行赋值。可以进行一些初始化操作,比如连接数据库。​__destruct方法是析构函数

对于私有属性是无法直接通过$student->name这种方法获得或设置的,但是可以添加__get和__set方法,这样就可以在类外部调用了。__get($name) __set($name,$value)。参数中的$name应该是不可以写成别的。这两种方法归为PHP的重载,PHP中的重载指动态的创建类的属性和方法,与JAVA中的不同。有了这两个方法,即使这个属性不存在也不会报错,从这里发现这个思路与语法盐是背离的。需要理解的是,这两个方法是隐式调用的。

__call和__callStatic方法 ​__call 当要调用的方法不存在或权限不足时,会自动调用__call 方法。__callStatic 当调用的静态方法不存在或权限不足时,会自动调用__callStatic方法。__call($funcname, $arguments),__callStatic($funcname, $arguments),感觉用法很灵活,具体可以看

里面学到了几个方法,get_called_class()获取静态调用方法调用的类。list()用数组为一系列变量赋值。in_array()方法判断一个值是否在数组中。同时静态的方法通过类名::方法名来调用而不是->,内部使用self::或者parent::对于书中提到实现将strlen(trim($str))调用变成$str->trim()->strlen()的调用方式,我自己写了一下代码,感觉自己吊吊哒。代码如下``

class myString {
	public $str;
	public function __construct($str){
		$this->str=$str;
	}
	public function __call($fun,$args){
		switch($fun){
			case 'trim':
				$this->str=trim($this->str);
				return $this;
			case 'strlen':
				return strlen($this->str);
				break;
		}
	}
}
	$a=new myString(' xiaoming ');
	
	echo $a->trim()->strlen();


__toString()魔术方法其实和java里面的toString是类似的,可以再echo的时候自动调用


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我会尽力回答你关于大数据技术与应用的问题,以下是我的笔记: 1. 什么是大数据? 大数据是指数据量过大、处理复杂度高、价值密度低的数据。大数据具有“3V”特征:数据量大(Volume)、处理速度快(Velocity)、数据种多(Variety)。 2. 大数据技术有哪些? 大数据技术主要分为存储、处理、分析三个方面。常用的大数据技术包括:Hadoop、Spark、Hive、HBase、Storm、Kafka等。 3. 大数据的应用场景有哪些? 大数据的应用场景非常广泛,包括但不限于以下几个方面: - 金融行业:风险控制、反欺诈、客户画像等; - 零售行业:销售预测、商品推荐、库存管理等; - 医疗行业:病人监测、疾病预测、数据分析等; - 交通行业:智能交通、交通拥堵预测、车辆管理等; - 教育行业:学生画像、教育资源管理、教学效果分析等。 4. 大数据的处理流程是什么? 大数据的处理流程可以分为以下几个步骤: - 数据采集:收集原始数据; - 数据存储:将采集到的数据存储到大数据平台中; - 数据清洗:对数据进行清洗,去除脏数据; - 数据处理:使用大数据技术对数据进行处理和分析; - 数据可视化:将处理后的结果以图形方式展现出来。 5. 大数据的挑战有哪些? 大数据的挑战主要包括以下几个方面: - 数据存储:海量数据的存储需要大量的存储空间; - 数据处理:海量数据的处理需要大量的计算资源; - 数据质量:大数据中存在大量的脏数据,需要进行数据清洗; - 数据安全:大数据中包含大量的敏感信息,需要保证数据安全; - 人才短缺:大数据技术需要专业的人才支持,但是目前人才供不应求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值