PHP学习笔记

原创 2016年08月30日 17:57:35
1.php 可以动态的添加属性 例如:
$product1->time = “1994"
相应的问题也接踵而至,这样创建并设置属性会带来代码的不可控性,这种方式是不建议的。
2.方法的声明
public function myMethod{
     //…..
}
方法的调用
$product1 -> getProducer();

3.重写构造函数
function __construct($propety){
      $this->property =  $property;
}
定义了构造函数后调用时候需注意 new Product()方法时需要传入参数
4.由于PHP是弱类型语言 PHP5引入了类型提示,类型提示是运行时的
例 public function write(Product $product = null){
     
}
默认值为null
传入和上述不同类型的参数会提示错误
和OC中的方法差不多 强类型语言

5.php中没有严格的对象方法与类方法
提供两个类似OC中的关键字self ——this,super— — parent
类方法的调用 parent::getArray();
对象方法的调用 this->getArray();

6.属性三种修饰词 private protected public
与OC中类似 
本类中才类层次内可访问  子类与父类中可以访问类层次之内访问  任何地方都可以访问

7.类种支持静态属性 静态方法
并可以设置Final类、析构方法还有匿名函数
设置静态属性中 设置静态方法中  关键字为 static
注意在static修饰的方法中 要使用调用这个方法的类时候需要用self  这点和OC中不同
self在类方法中   this在对象方法中

8.声明常量属性 可用const关键字
对象不可以设置为常量 只能通过类而不能通过对象访问常量属性 并且不需要美元符号

9.抽象类 abstract 关键字  抽象类不可以直接创建对象;子类可以继承它并且通过实现其中的抽象方法
其中抽象方法也是由abstract修饰,细节可以不确定,但是子类必须得实现。

10.接口 interface 相当于OC中的protocol
实现一个接口时 例:class Product implements Charge{
}

11.static的关键字其他用处 延迟静态绑定 在一个抽象类中创建的一个抽象方法 里边要创建该类的对象这是如果你要使用
self()这样去创建的会提示错误信息 但是如果你是要用 static()创建的话没有任何错误提示
也可以调用静态方法的标识符 例  static::getGroup();     其中getGroup()为静态方法

12.PHP常用的抛出异常的方法 try{} Catch{}方法

13.final   关键字可以终止类的继承 也可以修饰方法  但不可以修饰属性 类似swift这个关键词的争议比较大

14.拦截器的使用,拦截器例如:__call(); __set(); __unset(); __get(); __isset(); 
当设置属性 unset设置一个未定义属性调用时 isset()对未定义的属性调用isset()方法
__cal()类中未定义的方法时会被调用   跟OC中的runtime有点类似

15.__destruct函数  与OC中的dealloc类似  但是里面执行的内容不一样 
__destruct函数也是在对象就被销毁的时候会调用

16.__clone()复制对象  首先要说明的是 PHP中的对象都是引用的,这样的方式可以使对象都是值复制的方式
新生成一个对象。现在类中实现这个方法,然后用clone关键字赋值。
$person2 = clone $person;
这样的方式为浅复制 ,对象还是为引用 $this->account = clone $this->account这样可以避免类中赋值属性进行引用

17.__toString()方法返回的是一个字符串值  相当于OC中的description方法 ,当print echo 这个对象的时候 
会根据__toString的方法来进行输出。

18.回调、匿名函数、闭包
调用使用与JS中类似可以说就是一样 同JS一样function (参数){}

19.use 关键字

20.namespace 命名空间
PHP支持声明嵌套的命名空间  全局空间中声明的方法不需要指定命名空间,默认的就是
在调用的时候需要在方法前面加上\表面我要使用的是全局空间中的方法

21.instaceof  类似于 OC中的 isaKndOf中的一种
该函数也是判断对象是否是属于某一个类


  1. .=运算符  是指字符串的拼接


23.php原生嵌套JS代码
<?php
$js = <<<JS
//js code in here
JS; 
?>

24.

empty() 判断一个变量是否为“空”,isset() 判断一个变量是否已经设置。正是这种所谓的“顾名思义”,令我开始时走了些弯路:当一个变量值等于0时,empty()也会成立(True),因而会发生 一些意外。原来,empty() 和 isset() 虽然都是变量处理函数,它们都用来判断变量是否已经配置,它们却是有一定的区别empty还会检测变量是否为空、为零。当一个变量值为0,empty() 认为这个变量同等于空,即相当于没有设置。

比如检测 $id 变量,当 $id=0 时,用empty() 和 isset() 来检测变量 $id 是否已经配置,两都将返回不同的值—— empty() 认为没有配置,isset() 能够取得 $id 的值:

复制代码 代码如下:

$id=0;
    empty($id)?print "It's empty .":print "It's $id .";
      //结果:It's empty .
    print "<br>";
    !isset($id)?print "It's empty .":print "It's $id .";
      //结果:It's 0 .
这意味着,我们在使用变量处理函数时,当该变量可能出现0的值,使用 empty() 要小心,这个时候用 isset 取代它更明智一些。
当一个php页面的 URL 尾部参数出现 id=0 时(比如:test.php?id=0),试比较:

复制代码 代码如下:

if(empty($id)) $id=1; - 若 id=0 ,id 也会为1
if(!isset($id)) $id=1; - 若 id=0 ,id 不会为1
可分开运行以下代码检测上述推断:

复制代码 代码如下:

if(empty($id)) $id=1;
    print $id; // 得到 1
    if(!isset($id)) $id=1;
    print $id; //得到 0

25.php 中date的日期格式
用法: date(格式,[时间]);
如果没有时间参数,则使用当前时间. 格式是一个字符串,其中以下字符有特殊意义:
U 替换成从一个起始时间1970年1月1日以来的秒数

26.16个魔法方法
__sleep() serialize()函数调用触发
__wakeup() unserialize()函数调用触发
__set()设置私有属性
__get()获取私有属性
__isset() 属性不可访问isset()或empty()时调用
__unset() 属性不可访问调用unset()
__toString() 需要将对象转换为字符串调用
__invoke()将对象当做方法调用时
__set_state()var_export()导出时调用
__clone() clone对象时调用
__autolaod() 尝试加载一个未定义的类
__debugInfo() 打印所需调试信息 var_dump()函数调用时
__construct()构造对象时调用
__destruct() unset()对象时调用
__call() 调用查找不到的方法
__callStatic() 调用查找不到的静态方法

<?php  
echo "时间格式1:".date("Y-m-d H:i:s ")."<br>";// 2010-06-12 10:26:31   
echo "时间格式2:".date("y-M-D h:i:S ")."<br>";// 10-Jun-Sat 10:43:th   
echo "月份,英文全名:".date("F")."<br>";// June   
echo "月份,二位数字,补零:".date("m")."<br>";//  06  
echo "月份,二位数字,不补零:".date("n")."<br>";//  6  
echo "月份,三个英文:".date("M")."<br>";// Jun  
echo "星期几,英文全名:".date("l")."<br>";// Saturday  
echo "星期几,三个英文:".date("D")."<br>";// Sat  
echo "星期几,数字型:".date("w")."<br>";// 6  
?> 

  • Y - 年,四位数字; 如: "1999"
  • y - 年,二位数字; 如: "99"
  • z - 一年中的第几天; 如: "0" 至 "365"
  • F - 月份,英文全名; 如: "January"
  • m - 月份,二位数字,若不足二位则在前面补零; 如: "01" 至 "12"
  • n - 月份,二位数字,若不足二位则不补零; 如: "1" 至 "12"
  • M - 月份,三个英文字母; 如: "Jan"
  • t - 指定月份的天数; 如: "28" 至 "31"
  • d - 几日,二位数字,若不足二位则前面补零; 如: "01" 至 "31"
  • j - 几日,二位数字,若不足二位不补零; 如: "1" 至 "31"
  • h - 12 小时制的小时; 如: "01" 至 "12"
  • H - 24 小时制的小时; 如: "00" 至 "23"
  • g - 12 小时制的小时,不足二位不补零; 如: "1" 至 12"
  • G - 24 小时制的小时,不足二位不补零; 如: "0" 至 "23"
  • i - 分钟; 如: "00" 至 "59"
  • s - 秒; 如: "00" 至 "59"
  • S - 字尾加英文序数,二个英文字母; 如: "th","nd"
  • U - 总秒数
  • D - 星期几,三个英文字母; 如: "Fri"
  • l - 星期几,英文全名; 如: "Friday"
  • w - 数字型的星期几,如: "0" (星期日) 至 "6" (星期六)
  • a - "am" 或是 "pm"
  • A - "AM" 或是 "PM"
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

php学习笔记

  • 2012年12月08日 12:22
  • 242KB
  • 下载

PHP学习笔记

  • 2012年12月20日 16:49
  • 213KB
  • 下载

韩顺平_PHP程序员玩转算法公开课(第一季)11_双向链表在内存中存在形式剖析_学习笔记_源代码图解_PPT文档整理

文西马龙:http://blog.csdn.net/wenximalong/ 链表——双向链表的快速入门 双向链表(不需要辅助变量,就可以自我删除) 使用带head头的双向链表实现—水浒英雄...

传智播客2015PHP34期SVN学习笔记

  • 2016年01月10日 19:21
  • 1.71MB
  • 下载

php学习笔记

  • 2015年05月11日 14:31
  • 157KB
  • 下载

【PHP+MYSQL】实现登录界面的学习笔记

目标 利用php和MySQL实现登录界面 工具 1.wampserver(简单易上手的集成安装环境!) 2.notepad++(或dw,嫌麻烦记事本也可以!) 步骤 1.首先安装wampserver ...
  • Echowht
  • Echowht
  • 2015年01月09日 14:40
  • 2215

PHP学习笔记

  • 2014年09月11日 17:04
  • 152KB
  • 下载

php100关于类的学习笔记

  • 2012年02月20日 18:22
  • 55KB
  • 下载

PHP与MYSQL学习笔记-基础篇3(结构化编程)

PHP结构化编程良好的编程习惯和编程风格会使你的代码更易读,管理和维护都变得及其简单,在PHP中也是这样,我们可以利用许多方法使代码结构化,在本博文中,我将为大家介绍一些最基础的PHP结构化编程方法。...

PHP的变量、常量学习笔记

  • 2008年10月24日 15:20
  • 2KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PHP学习笔记
举报原因:
原因补充:

(最多只允许输入30个字)