Coder Liu的博客

Stay foolish, Stay hungry

PHP学习笔记

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"
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lzx_victory/article/details/52371654
文章标签: PHP
个人分类: PHP
上一篇TP框架的简称函数用法及意义
下一篇MacOS Homebrew安装Memcache
想对作者说点什么? 我来说一句

php学习笔记

2018年05月29日 5.81MB 下载

php二次开发学习笔记

2011年08月07日 1KB 下载

PHP第一部分学习笔记

2010年12月25日 82KB 下载

php第一部分学习笔记源码

2010年12月25日 5KB 下载

PHP学习笔记PHP实例

2012年12月12日 539KB 下载

PHP学习笔记1

2012年07月25日 639KB 下载

PHP个人学习笔记

2018年03月13日 3KB 下载

PHP整理笔记

2013年12月07日 164KB 下载

PHP 学习资料笔记2

2010年11月24日 5KB 下载

没有更多推荐了,返回首页

关闭
关闭