代码改变世界

php与mysql程序设计 读书笔记——张迅雷闪击PHP(1-6章)

2012-06-21 08:50  java环境变量  阅读(262)  评论(0编辑  收藏  举报

第一章  PHP概述
源代码下载  apress.com
采用多种协议同意,包括LDAP  IMAP  POP3  NNTP DNS
访问数据库PDO  MDB2
对象关系映射ORM的解决方案  Propel(http://propel.phpdb.org/trac/)

 

 

 


第二章  PHP概述
linux目标服务器有root权限才能完成构建过程。需要一个成熟的ANSI-C编译器和构建系统;PHP需要Flex、Bison;Apache 至少需要Perl5.003 ;如果是php6,还需要安装3.4版本的ICU(International Componets  for Unicode ,Unicode国际化组件包)
linux服务器搭建步骤:
解压Apache  php
1)  gunzip  httpd-2_X_XX.tar.gz
      tar xvf  httpd-2_x_xx.tar
      gunzip  php_XX.tar.gz
      tar xvf  php_xx.tar
2)配置Apache
    cd  httpd-2_x_xx
    ./configure   --enable-so
    make
3)  install  apache
    make  install
4)配置 构建 php
  cd ../php-x_xx
  ./configure  -with-apxs2=APACHE_INSTALL_DIR/bin/apxs
  make
  make  install
5)  配置php 
  cp  php.ini-recommended /usr/local/lib/php.ini
6)打开apache的配置文件
 LoadModule  php5_module  modules/libphp5.so
AddType  application/x-httpd-php  .php

/usr/local/apache2/bin/apachect1  restart


如果是windows服务器PHPIniDir   “c:\php5”  加上

在linux配置php

./configure  --help
./configure  --with-apxs2=APACHE_INSTALL_DIR/bin/apxs  --enable-ftp  PHP的ftp
./configure  --with-apxs2=APACHE_INSTALL_DIR/bin/apxs  --enable-java=[JDK-INSTALL-DIR]   php的java扩展

ini_set()函数  用php修改php.ini配置文件

 

 

第三章  PHP基础
 printf按格式输出到浏览器
 printf("%.2f",43.2);
而sprintf按格式输出到字符串
$const=sprintf("%.2f",43.2);
 echo $const;


数据类型 标量  scalar
布尔 true  false 不区分大小写  同样可以用1和0来代替;
整型;
浮点型;
字符串:是一个连续的字符序列;
对象;
资源;
——————————————————————————————————————————————
 强制类型转换
(array)
(bool) (boolean)
(int)(integer)
(object)
(real) (double) (float)
(string)

——————————————————————————————————————————————
gettype()  可能有8个返回值  array  boolean  double  integer  object  resource  string  unkonw type
settype()可以设定7种类型  返回true或者false
is_array()   is_bool()  is_float()  is_integer()  is_null()   is_numeric()  is_object()   is_resource()  is_scalar()  is_string()


php变量的作用域  scope
局部变量;函数参数;全局变量;静态变量;显示声明全局变量:  GLOBAL

超级全局变量:启用这9个变量数组,必须在php.ini文件中启用配置参数track_vars  php4.3后总是开启的。
 foreach($_SERVER as  $key=>$value){
  //echo  $key."===".$value;
  echo  "$key=>$value<br/>";
 }

变量的变量
 $recipe="spa";
$$recipe="360qq";

echo  $recipe, $spa;
echo  $recipe, ${$recipe}


define()定义常量如果使用可选参数 case_insensitive=TRUE 那么后面对常量的引用将不区分大小写。
%取模就是取余数

字符串插入

双引号
 $tencent='ma hua teng';
 echo "china   qq  company is $tencent";

结果:china qq company is ma hua teng

如果单引号 将按字符串原样输出

heredoc语句注意以下三点:
a 开始和结束标示符必须相同
b 开始标示符前面必须有三个左尖括号 <<<
c heredoc与双引号界定的字符串遵循相同的解析规则。变量和转义序列都得到解析,唯一的区别是,此处的双引号不需要转义。
d 结束标识符必须在一行开始处。
适用场景:  如果需要处理大量内容,又不希望适用转义引号,此时heredoc语句尤其有用。

如果包含一个break语句,将立即结束do...while  for  foreach  switch  while循环的执行。
goto语句,php6中得到了扩展以支持标签,可以直接跳到一个循环或条件构造之外的某个特定位置。php5不支持
continue语句使当前循环迭代执行结束,并从下一次迭代开始执行

include与print  echo语句一样 ,使用可以忽略括号。
只有启用allow_url_fopen这是默认的,才可以再require中使用URL

 

第四章 函数
默认参数值必须位于参数列表末尾或为常数表达式,而不能制定函数调用或变量等非常量值。可以指定某个参数为可选optional参数,这些参数需要放在参数列表末尾,而且要指定其默认值为空。

一个非常有用的函数
number_format() 函数通过千位分组来格式化数字。
return()    可以向函数调用者返回任意确定的值,将程序控制权返回到调用这的作用域。

第5章  数组

array_unshift() 函数在数组开头插入一个或多个元素。

被加上的元素作为一个整体添加,这些元素在数组中的顺序和在参数中的顺序一样。

该函数会返回数组中元素的个数。


in_array() 搜索数组一个特定值;
array_key_exists()在一个数组中找到一个指定的键
array_search()  一个数组中搜索一个指定的值;
array_keys() 包含所搜索数组中找到的所有键;
array_values() 包含所搜索数组中找到的所有值;

key()  函数返回当前指针所在位置的键;
current 返回数组中当前指针所在位置的数组值;
each 返回当前键值对,并将指针推进一个位置;

array_count_values() 函数用于统计数组中所有值出现的次数。

letlocale()函数设置你的本地化环境(locale)
array_reverse() 逆置数组中元素的顺序;
array_flip()  置换数组中键及相应值的角色;

sort排序破坏键值对的关联
asort保持键值对的关联

rsort
asort

natsort自然排序
natcasesort不分区大小写的自然排序

ksort按键对数组排序;
krsort 逆序即降序;

usort  根据用户自定义排序规则;例如对美国日期 m-d-y  的比较


array_slice返回数组中的一部分;
array_splice  删除并以数组的形式返回所删除的元素;

array_rand返回数组中的一个或者多个;
shuffle  随即地对数组中的元素重新排序;
array_sum  求和,如果包含字符串其它类型数据,这些值将被忽略;

array_chunk()  分解为一个多维数组

 

第6章   面向对象的php
耦合  couple
三特性   封装  encapsulation
            继承   inherit
            多态    polymorphism  
well-designed  指足够抽象,从而可以重用
类 class
对象 object
php支持5种字段作用域  public  private  protected  final  static

php6中可以用var取代public
php5确实提供了对属性的某种支持,并有几种新的可能性,这事通过冲在__set  __get方法来实现的,当试图引用一个类定义中不存在的成员变量时,就会调用这些方法。

getName   setName  通过使用标准的命名约定封装了管理和存取任务。
在类中定义常量  constant    常量值在这些对象的整个生命周期中都保持不变

echo  math_function::PI;  这样访问


php支持6种方法作用域  public  private  abstract protected  final  static

private方法只能在类内部使用,不能由实例化的对象调用,也不能由类的子类调用,如果某些方法只用作为类中其它方法的“助手”(即辅助方法),就应当标记为私有。


类的辅助函数
boolean  class_exists  确定类是否存在;
string  get_class  确定对象上下文,返回object所属类的类名;
get_class_methods 返回数组  了解类的方法
get_class_vars 类的字段名和值
get_declared_classed  返回一个数组,包含当前执行脚本中定义的所有类名;
get_object_vars  返回一个关联数组,包含object可以用的已经定义的字段及其相应的值,没有值的字段在关联数组中将赋值为null
get_parent_class  确认对象的父类
interface_exists 接口是否存在;
is_subclass_of确认对象的子类型
method_exists  确定方法是否存在;