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学习笔记 1.网站开发构件

网站开发构件 课程内容 网站软件介绍 B/S软件体系统结构 动态网站介绍 动态网站开发所需要的Web构件 开发选项卡实例 通过实例了解Web构件 网站软件简介 B/S软件的...

PHP学习笔记

把插入数据库中的id值取出来 $getID=mysql_insert_id();//返回在最后一次执行了 INSERT 查询后,由 AUTO_INCREMENT 定义的字段的值 获取键名 ...

精选:深入理解 Docker 内部原理及网络配置

网络绝对是任何系统的核心,对于容器而言也是如此。Docker 作为目前最火的轻量级容器技术,有很多令人称道的功能,如 Docker 的镜像管理。然而,Docker的网络一直以来都比较薄弱,所以我们有必要深入了解Docker的网络知识,以满足更高的网络需求。

PHP第一季视频教程.李炎恢.学习笔记(三)(第2章 基本语法(2))

自学PHP,第二章基本语法(2)的学习笔记。

PhpNote

PHP学习笔记

PHP第一季视频教程.李炎恢.学习笔记(二)(第2章 基本语法(1))

自学PHP,第二章基本语法(1)的学习笔记。 个人感觉这一章没什么特别的,学过其他开发语言的,基本上没什么障碍,其中提到的函数,多用几次就熟悉了。

PHP+Mysql学习笔记

1.      PHP is Hypertext Preproocessor。 2.      Hello World: Echo ‘Hello World!’; ...

20150304学习笔记

PEAR包的命名规则 每个类都根据包路径来命名,每个路径名以下划线来分割。 缺点: 类名冗长 ; 优点:类名不会重复、一看便知文件所在文件。 命名空间用于文件级别,声明是文件中的第一条语...

PHP第一季视频教程.李炎恢.学习笔记(四)(第2章 基本语法(3))

自学PHP,第二章基本语法(3)的学习笔记。

PHP学习笔记

//语法错误(syntax error)在语法分析阶段,源代码并未被执行,故不会有任何输出。 /* 【命名规则】 */ 常量名 类常量建议全大写,单词间用下划线分隔 // MIN_WIDTH...
  • damys
  • damys
  • 2014-08-14 11:20
  • 1947

PHP学习笔记

-----PHP学习笔记----- 1. 只有在 .php 文件中才可以解析语句 2. var_dump(); //不仅输出值,还有类型,还有长度(长度与字符编码有关)    p...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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