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学习笔记-PHP语言基础1

转载请标明出处: http://blog.csdn.net/hai_qing_xu_kong/article/details/50935256 本文出自:【顾林海的博客】 前言“合抱之木,...
  • GULINHAI12
  • GULINHAI12
  • 2016年03月22日 08:12
  • 1384

php 编程笔记分享 - 非常实用

php strstr 判断一个字符串是否存在于里一个字符串中 php stristr() 函数查找字符串在另一字符串中的第一次出现 php strchr() 函数查找字符串在另一字符串中的第一次出现 ...
  • wuxiaopeng_1986
  • wuxiaopeng_1986
  • 2016年05月27日 22:37
  • 570

两千行PHP学习笔记

http://www.cnblogs.com/shockerli/p/2000-plus-line-php-notes.html //语法错误(syntax error)在语法分析阶段,源代...
  • wuxiaobingandbob
  • wuxiaobingandbob
  • 2015年09月07日 09:57
  • 740

php学习笔记-后台模块

开发后台模块与前台模块及其类似,参考其他后台模块,必须登录才能访问。所以需要加载后台模块应用类。 ...
  • fishermanmax
  • fishermanmax
  • 2016年04月07日 22:19
  • 126

web 安全学习笔记

最近做项目过程中,遇到一些
  • sailtoyouSCU
  • sailtoyouSCU
  • 2014年05月15日 14:09
  • 672

【php源代码学习笔记】php的启动

从apche的模块方式进入php 上回说道apache调用php有两种方式一个是模块方式,一种是cgi模式,我...
  • xming4321
  • xming4321
  • 2011年09月30日 16:20
  • 6732

PHP学习笔记——常规参数的函数

/* 功能:处理两个数相加 * @param int $a 这是第一个加数 * @param int $b 这是第二个加数 ...
  • iheyu
  • iheyu
  • 2017年04月19日 17:33
  • 221

PHP从零开始学习笔记

1、脚本标签 2、输出 有两种在浏览器输出文本的基础指令:echo 和 print echo - 可以输出一个或多个字符串 print - 只允许输出一个字符串,返回值总为 1 ec...
  • wzj0808
  • wzj0808
  • 2017年01月08日 12:05
  • 409

PHP学习之路之Hello World小程序

1.首先,要下载一个可以编写php的软件工具,这里,我用的是
  • u012561176
  • u012561176
  • 2014年06月17日 13:16
  • 815

PHP学习笔记-Session

转载请标明出处: http://blog.csdn.net/hai_qing_xu_kong/article/details/52186398 本文出自:【顾林海的博客】 前言上一篇讲述了...
  • GULINHAI12
  • GULINHAI12
  • 2016年08月20日 16:44
  • 3912
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PHP学习笔记
举报原因:
原因补充:

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