您的位置:首页 > 编程语言 > PHP开发

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

2012-06-21 08:50 344 查看
第一章 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 确定方法是否存在;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: