php+advanced

 php advanced


eclipse pdt环境:

  • Open Eclipse and go to Help-> Software Updates-> Find and Install
  • Select "Search for new features to install" and click "Next"
  • Create a New Remote Site with the following details:
  • Check the PDT box and click "Next" to start the installation

确定变量类型

因为 PHP 会判断变量类型并在需要时进行转换(通常情况下),因此在某一时刻给定的变量是何种类型并不明显。PHP 包括几个函数可以判断变量的类型,例如:gettype()is_array()is_float()is_int()is_object()is_string()。参见类型一章。


require()  如果文件错误,不会运行(只执行一次)

include()  如果文件错误,显示错误信息后继续运行()



thinkphp框架:

分为 系统结构目录 项目结构目录。

项目结构目录可如下搭建:index.php文件(先与ThinkPhp整个文件架并行):

<?php
define('THINK_PATH','./ThinkPhp/');
define('APP_PATH','./home/');
define('APP_NAME','home');
require_once THINK_PATH.'ThinkPHP.php' ;
App::run();
?>


运行调试时保留空白:

define('TRIP_RUMTIME_SPACE' , false);

不缓存相关的加载项:

define('NOCACHE_RUMTIME' , true);


~app.php 项目配置文件等,

~runtime.php  加载项




php oop思想:

 

<?php

  class Something {

  var $x;

  function setX($v) {

  // 方法开始为小写单词,然后使用大写字母来分隔单词,例如getValueOfArea()

  $this->x=$v;

  }

  function getX() {

  return $this->x;

  }

  }

?>


abstract抽象(跟java一样)

继承(跟java一样)

接口,是php5才有的(跟java一样)

基类名::方法名称

子类不不能自动调用基类的构造函数(这跟java有大区别),如果子类没有定义构造函数,才会自动调用父类的构造函数;子类使用parent::construct()调用父类构造函数

构造函数__construct() 与析构函数__destruct()

__set()、__get()方法

检查属性方法:__isset()     (删除指定的变量:unset())

删除属性方法:__unset()   (测定是否被设定:isset())

__toString()

使用clone关键字克隆对象,__clone() php5新有的。

     function __clone() 

     {

          //$this是指副本,$that是指原本

          $this->name  = "" ;

      }

     $p1 = new Person();

     $p2 = clone $p1;


__call处理调用错误(如没此方法时就自动调用);


默认是public ,,,这与java不同。,。,


类中常用关键字

final(跟java一样)

self :直接访问当前类的成员(属性或方法) self::

static(跟java一样)  用 类名::静态成员  或 self::静态成员 访问

const : 常量不使用$符号,用 类名::静态成员  访问


串行化对象:  

serialize()

unserialize()

__sleep()串行化前运行

__wakeup()反串行化时运行



自动加载类:__autoload(  ..  )

 






 


php try catch用法基本与其它类型相同

  1. < ?php   
  2. try {   
  3. $mgr = new CommandManager();   
  4. $cmd = $mgr->getCommandObject("realcommand");   
  5. $cmd->execute();   
  6. } catch (Exception $e) {   
  7. print $e->getMessage();   
  8. exit();   
  9. }   
  10. ?> 


php只有try...catch这个语法, 没有任何实质功能, 在大型项目中使用的话没有任何保障, 注定永远用于逻辑简单的小项目(并发很高的, 也可能是小项目, 项目大小与并发数无关, facebook和腾迅使用php也只是简单的前端显示, 不可能做逻辑复杂的大型后台运算之类的)






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

折腾数据折腾代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值