PHP琐碎学习

  • 在子类中如果定义了__construct则不会调用父类的__construct,如果需要同时调用父类的构造函数,需要使用parent::__construct()显式的调用。
 1 class Car {
 2    function __construct() {
 3        print "父类构造函数被调用\n";
 4    }
 5 }
 6 class Truck extends Car {
 7    function __construct() {
 8        print "子类构造函数被调用\n";
 9        parent::__construct();
10    }
11 }
12 $car = new Truck();
  • 类的内部 :调用属性自身属性  $this->name   而static   self::$name
  • 如果构造函数定义成了私有方法,则不允许直接实例化对象了,这时候一般通过静态方法进行实例化,在设计模式中会经常使用这样的方法来控制对象的创建,比如单例模式只允许有一个全局唯一的对象。
 1 class Car {
 2     private function __construct() {
 3         echo ‘object create‘;
 4     }
 5
 6     private static $_object = null;
 7     public static function getInstance() {
 8         if (empty(self::$_object)) {
 9             self::$_object = new Car(); //内部方法可以调用私有方法,因此这里可以创建对象
10         }
11         return self::$_object;
12     }
13 }
14 //$car = new Car(); //这里不允许直接实例化对象
15 $car = Car::getInstance(); //通过静态方法来获得一个实例
  • 重载

    • 属性的重载通过__set,__get,__isset,__unset来分别实现对不存在属性的赋值、读取、判断属性是否设置、销毁属性。
    • 方法的重载通过__call来实现,当调用不存在的方法的时候,将会转为参数调用__call方法,当调用不存在的静态方法时会使用__callStatic重载。
  • 对象序列化

    • 可以通过serialize方法将对象序列化为字符串,用于存储或者传递数据,然后在需要的时候通过unserialize将字符串反序列化成对象进行使用。
1 class Car {
2     public $name = ‘car‘;
3 }
4 $a = new Car();
5 $str = serialize($a); //对象序列化成字符串
6 echo $str.‘<br>‘;
7 $b = unserialize($str); //反序列化为对象
8 var_dump($b);
  • 单引号和双引号到底有啥区别呢?

    •   

      PHP允许我们在双引号串中直接包含字串变量

      而单引号串中的内容总被认为是普通字符。

      比如:

      $str=‘hello‘;
      echo "str is $str"; //运行结果: str is hello
      echo ‘str is $str‘; //运行结果: str is $str

  

时间: 2024-07-29 23:04:55

PHP琐碎学习的相关文章

Java学习之琐碎细节杂记

1.如何在Java中设置输入快捷方式? 例如:写代码时输入syso的话,就能够自动弹出System.out.println(); 方法:在Eclipse下打开windows-->preferences,找到java-->Editor-->Content Assisit,然后在右边的界面有一个Auto Activation.将Auto activation triggers for Java:后面填上26个字母,外加.(原点)和@这两个符号,然后save即可.

linux学习之一些琐碎知识点

一.python 问:django中project和app之间到底有什么不同? 答:他们的区别就是一个是配置,另一个是代码. 一个project包含很多个django app以及对它们的配置.技术上,project的作用是提供配置文件,比方说哪里定义数据库连接信息,安装的app列表,TEMPLATE_DIRS等等. 一个app是一套django功能的集合,通常包括模型和视图,按python的包结构的方式存在.例如:django本身内建有一些app,例如注释系统和自动管理界面.app的一个关键点是

Java学习之路(转)

我也搞了几年JAVA了.因为一向懒惰,没有成为大牛,仅仅是一普通程序员,不爱玩社交站点.不爱玩微博,只有喜欢百度贴吧,潜水非常久了,手痒来给新人分享下从新手成长为老鸟的已见,也刷刷存在感,应该不比曝照差吧. 首先初识语法的阶段,必需要学会怎么操作对象,操作if和for.操作list set map,然后是线程.IO和jdbc什么的.其余的.若是一时不理解,能够后边需要时再学. 这阶段完了,你能够写些能在控制台打印出来的小程序,锻炼下逻辑思维.也就是号称JAVASE毕业了,事实上只是是入门而已,假

从Image Caption Generation理解深度学习

0. 前面的话 建丁让我写一篇深度学习相关小文章,目标读者是国内的开发者.刚接到这个任务时我是颇为忐忑的,写文章要讲究厚积薄发,如果“水之积也不厚”,“则其负大舟也无力”.因为我自知水平很有限,又不是在学校和科研机构做研究,只不过因为工作和个人的兴趣,对深度学习有一点点粗浅的了解,所以担心写出来的东西不但于人无益,甚至还让人误入歧途.但后来又一想,如果把自己作为一个深度学习的学习者,和对它感兴趣的普通开发者分享一些学习的经历,包括学习过程中遇到的问题,可能也是有一些意义的.毕竟读论文或者听学术大

PHP开发程序员的学习路线

兄弟连PHP培训,简单为大家梳理了每个阶段PHP程序员的技术要求,来帮助很多PHP程序做对照设定学习成长目标. 第一阶段:基础阶段(基础PHP程序员) 重点:把LNMP搞熟练(核心是安装配置基本操作) 目标:能够完成基本的LNMP系统安装,简单配置维护:能够做基本的简单系统的PHP开发:能够在PHP中型系统中支持某个PHP功能模块的开发. 时间:完成本阶段的时间因人而异,有的成长快半年一年就过了,成长慢的两三年也有. 1.Linux 基本命令.操作.启动.基本服务配置(包括rpm安装文件,各种服

PHP程序员学习路线

第一阶段:基础阶段(基础PHP程序员) 重点:把LNMP搞熟练(核心是安装配置基本操作) 目标:能够完成基本的LNMP系统安装,简单配置维护:能够做基本的简单系统的PHP开发:能够在PHP中型系统中支持某个PHP功能模块的开发. 时间:完成本阶段的时间因人而异,有的成长快半年一年就过了,成长慢的两三年也有. 1.Linux 基本命令.操作.启动.基本服务配置(包括rpm安装文件,各种服务配置等):会写简单的shell脚本和awk/sed 脚本命令等. 2.Nginx 做到能够安装配置nginx+

20145316《Java程序设计》第二周学习总结

20145316<Java程序设计>第2周学习总结 教材学习内容总结 3.1.1 Java的类型 分为基本类型(Primitive type)和类类型(Class type) 基本类型: 整数:short(2 byte).int(4 byte).long(8 byte) 字节(byte):-128~127 浮点数:float(4 byte).double(8 byte) 字符:2 byte 汉字字符与英文字符都是双字节存储 布尔:逻辑真true 逻辑假false(不能与其他类型进行运算) 3.

【基本技能篇】&gt;&gt;第3篇《暗时间_指导学习的方法论——心得》

暗时间——指导学习的方法论 ——2016年2月11日 打造自己的核心竞争力:①专业领域技能:②跨领域的技能(解决问题的能力,创新思维,判断与决策能力,表达沟通能力等等):③学习能力,持续学习和思考新知识:④性格要素(专注和持之以恒是最重要的!自省,好奇心,自信,谦卑等等) 你所拥有的知识并不取决于你记得多少,而在于你使用的时候能够回忆起来.利用起来多少. 一.对于记忆知识的本质:要理解.消化.总结.联系,既有深度也不缺乏广度,形成“T”字型的知识结构.知识中包含了精细的概念.逻辑.一般的解题原则

我的2015技术学习流水账

我的2015技术学习流水账 2015年马上就要过去了,匆匆忙忙地又是一年.回头总结整理,发现这一年还挺充实的.在正常上班工作之余,学习到了不少新东西,不禁感到很欣慰!一个多月前就开始写,终于赶在2016年来临之前写完了这篇文章-- 关于本文,尽管叫做流水账,但是出于程序员条理性的"强迫症",还是进行系统分类,分类方法参照Thoughtworks技术雷达的Tecniques.Languages & Frameworks.Tools.Platforms,将其中的Tecniques改