
PHP手册学习
三石先生XL
这个作者很懒,什么都没留下…
展开
-
与变量相关扩展-数组(1)
array array_change_key_case (array$input [,int$case ] )将input数组中的所有键名改为全小写或大写。改变是根据后一个选项case参数来进行的。可以在这里用两个常量,CASE_UPPER 和CASE_LOWER。默认值是CASE_LOWER。本函数不改变数字索引。 如果一个数组中的多个键名经过本函数后变成一样的话(例如 "keY转载 2012-08-23 01:52:00 · 638 阅读 · 0 评论 -
php手册-声明变量
/*$a = 'hello';$$a = 'world';echo $hello;//$$a == $hello */原创 2012-08-02 11:26:20 · 377 阅读 · 0 评论 -
php手册-字符串连接符
//test1echo 'a'.$c = 'x';echo 'b';echo 'c';echo '';//axbc//test2echo 1 ..2;//(string)10.2上述test2中10.2其实是个string型,请注意1后面是带空格的被php解析为字符串1,后面.2则被PHP解析为float0.2,2个拼接后为字符串10.2原创 2012-08-02 10:57:27 · 524 阅读 · 0 评论 -
PHP手册-call_user_func
// An example callback functionfunction my_callback_function() { echo 'hello world!';}// An example callback methodclass MyClass { static function myCallbackMethod() { echo 'Hello原创 2012-08-02 10:44:29 · 1907 阅读 · 0 评论 -
PHP手册-类型
如果只是想得到一个易读懂的类型的表达方式用于调试,用 gettype()。要查看某个类型,不要用 gettype(),而用 is_type 函数。以下是一些范例: $a_bool = TRUE; // a boolean$a_str = "foo"; // a string$a_str2 = 'foo'; // a string$an_int = 12; // an int原创 2012-08-02 09:35:31 · 433 阅读 · 0 评论 -
php手册-类型比较表
使用 PHP 函数对变量 $x 进行比较表达式gettype()empty()is_null()isset()boolean : if($x)$x = "";stringTRUEFALSETRUEFALSE$x = null;NULLTRUETRUEFALSEFALSEvar $x;转载 2012-08-02 11:13:31 · 431 阅读 · 0 评论 -
php手册-伪类
mixedmixed 说明一个参数可以接受多种不同的(但并不必须是所有的)类型。 例如 gettype() 可以接受所有的 PHP 类型,str_replace() 可以接受字符串和数组。numbernumber 说明一个参数可以是 integer 或者float。 callback有些诸如 call_user_function() 或usort原创 2012-08-02 10:47:42 · 1053 阅读 · 0 评论 -
PHP手册-'===null',empty(),is_null()和isset()
$v = NULL;$s = microtime(TRUE);for($i=0; $i<1000; $i++) { is_null($v);}print microtime(TRUE)-$s;//0.010066986083984print "";$s = microtime(TRUE);for($i=0; $i<1000; $i++) { $v===NULL;}print原创 2012-08-02 10:02:14 · 1236 阅读 · 0 评论 -
PHP错误处理函数
debug_backtrace() -- 追踪当前代码被调用的源头PHP debug_backtrace() 函数生成一个 backtrace。该函数返回一个关联数组。下面是可能返回的元素:名称类型描述function字符串当前的函数名。line整数当前的行号。fi原创 2012-08-09 13:36:05 · 686 阅读 · 0 评论 -
PHP手册-引用计数基本知识
$a = array( 'one' );$a[] =& $a;xdebug_debug_zval( 'a' );显示结果:a: (refcount=2, is_ref=1)=array ( 0 => (refcount=1, is_ref=0)='one', 1 => (refcount=2, is_ref=1)=...)能看到数组变量 (转载 2012-08-09 09:36:41 · 542 阅读 · 0 评论 -
与变量相关扩展-数组(2)
array array_map(callback$callback ,array$arr1 [,array$... ] )返回一个数组,该数组包含了 arr1 中的所有单元经过 callback 作用过之后的单元。callback接受的参数数目应该和传递给array_map() 函数的数组数目一致。function cube($n){ return($n *转载 2012-08-30 01:03:53 · 486 阅读 · 0 评论 -
Output Control 函数的应用
转自 http://hi.baidu.com/%B4%F3%CE%C3%D7%D3%D1%A7php/blog/item/84a4ce8d477f75e4f01f36d7.htmlOutput Control 函数可以让你自由控制脚本中数据的输出。它非常地有用,特别是对于:当你想在数据已经输出后,再输出文件头的情况。输出控制函数不对使用 header() 或 setcookie(),转载 2012-08-21 08:47:37 · 631 阅读 · 0 评论 -
PHP 选项/信息 函数-assert()
assert这个函数在php语言中是用来判断一个表达式是否成立。返回true or false;例如$s = 123;assert("is_int($s)");?>从这个例子可以看到字符串参数会被执行,这跟eval()类似。不过eval($code_str)只是执行符合php编码规范的$code_str。assert的用法却更详细一点。assert_opti转载 2012-08-21 10:28:40 · 760 阅读 · 0 评论 -
与变量相关扩展-数组(3)
array array_pad(array$input , int$pad_size , mixed$pad_value )返回 input 的一个拷贝,并用 pad_value 将其填补到pad_size 指定的长度。如果pad_size 为正,则数组被填补到右侧,如果为负则从左侧开始填补。如果pad_size 的绝对值小于或等于input 数组的长度则没有任何填补。有可能一次最转载 2012-08-30 01:24:27 · 500 阅读 · 0 评论 -
PHP-scream扩展(使@失效)
需要安装// Make sure errors will be shownini_set('display_errors', true);error_reporting(E_ALL);// Disable scream - this is the default and produce an errorini_set('scream.enabled', false);echo "O转载 2012-08-22 08:57:34 · 1011 阅读 · 0 评论 -
runkit相关函数(运行时改变class或者function)
需要自行安装在运行时改变类和函数~~~~使PHP成为动态语言?runkit可以在运行期间,重定义类的方法,手册上有例子runkit window上配置:去http://pecl4win.php.net/ext.php/php_runkit.dll下载php_runkit.dll,放到PHP\ext目录下修改php.ini,增加extension=php_ru转载 2012-08-21 17:21:59 · 897 阅读 · 0 评论 -
PHP扩展应用
APC(Alternative PHP Cache) - 是一个开放自由的PHP opcode 缓存。它的目标是提供一个自由、 开放,和健全的框架用于缓存和优化PHP的中间代码。在网站规模小时候使用此缓存比memcached快。APD(Advanced PHP Debugger) - APD 是 Advanced PHP Debugger,即高级 PHP 调试器。是用来给 PHP 代码提供原创 2012-08-09 11:20:09 · 452 阅读 · 0 评论 -
PHP垃圾回收
引用计数基本知识每个php变量存在一个叫"zval"的变量容器中。一个zval变量容器,除了包含变量的类型和值,还包括两个字节的额外信息。第一个 是"is_ref",是个bool值,用来标识这个变量是否是属于引用集合(reference set)。通过这个字节,php引擎才能把普通变量和引用变量区分开来,由于php允许用户通过使用&来使用自定义引用,zval变量容器中还有 一个内部引用计数转载 2012-08-21 10:59:26 · 785 阅读 · 0 评论 -
运行时加载PHP扩展的函数
dl — 在运行时加载PHP扩展// 判断扩展是否已经加载if (!extension_loaded('sqlite')) { if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {//PHP_OS —– (PHP预定义常量)服务器端的操作系统 dl('php_sqlite.dll'); } else {转载 2012-08-21 10:43:45 · 1626 阅读 · 0 评论 -
PHP选项及信息相关函数-1
string get_cfg_var(string$option ) 获取PHP配置信息echo "php设置的最大执行时间为:";print_r(get_cfg_var("max_execution_time"));//获得配置项的值echo "";echo "php设置的每个脚本的可使用内存总量为:";print_r(get_cfg_var("memory_limit"转载 2012-08-21 15:19:42 · 481 阅读 · 0 评论 -
PHP选项及信息相关函数-2
string ini_set (string$varname , string$newvalue ) 或ini_alter()在运行时修改php配置echo ini_get('display_errors');if (!ini_get('display_errors')) { ini_set('display_errors', 1);}echo ini_get转载 2012-08-21 15:37:50 · 507 阅读 · 0 评论 -
PHP选项及信息相关函数-3
void set_time_limit (int $seconds )设置允许脚本运行的时间,单位为秒。如果超过了此设置,脚本返回一个致命的错误。默认值为30秒,或者是在php.ini的max_execution_time被定义的值,如果此值存在。当此函数被调用时,set_time_limit()会从零开始重新启动超时计数器。换句话说,如果超时默认是30秒,同时,脚本中又设置了转载 2012-08-21 16:47:09 · 555 阅读 · 0 评论 -
设置include和require的目录get_include_path与set_include_path
首先 我们来看这个全局变量:__FILE__ 它表示文件的完整路径(当然包括文件名在内) 也就是说它根据你文件所在的目录不同,有着不同的值;当然,当它用在包行文件中的时候,它的值是包含的路径; 然后: 我们看这个函数: string dirname ( string path ) 它是PHP内置函数,它的作用是什么呢,就是返回除了本文件名以外的所在目录,给你举个例子 假如你的转载 2012-08-21 13:46:38 · 2387 阅读 · 0 评论 -
PHP手册-引用返回,取消引用
引用返回class foo { public $value = 42; public function &getValue() {//此标记就是要返回引用 return $this->value; }}$obj = new foo;$myValue = &$obj->getValue(); // $myValue is a reference to转载 2012-08-07 15:16:20 · 745 阅读 · 0 评论 -
PHP手册-eval()(可以将单引号中的变量解析)
今天在看一个程序的时候,发现程序中使用了eval函数,这个函数平时不怎么常见,但是听说它还是比较强大的一个php函数,就准备研究它下。首先,去php手册查了下它的用法,手册上的解释是:把字符串按照 PHP 代码来计算。然后给出了下面的一个例子:$string = 'cup'; $name = 'coffee'; //定义两个变量 $str = 'This is a $string wit转载 2012-08-07 14:17:23 · 3444 阅读 · 0 评论 -
PHP手册-逻辑运算符相关
逻辑运算符例子名称结果$a and $bAnd(逻辑与)TRUE,如果 $a 与 $b 都为 TRUE。$a or $bOr(逻辑或)TRUE,如果 $a 或 $b 任一为 TRUE。$a xor $bXor(逻辑异或)TRUE,如果 $a 或 $b 任一为 TRUE,但不同时是。! $aNot转载 2012-08-02 14:06:52 · 412 阅读 · 0 评论 -
PHP手册-后递增疑问
$a = 5;$a = $a++;echo '$a='.$a;//$a = 5结果是5~~~求真相原创 2012-08-02 13:40:02 · 335 阅读 · 0 评论 -
PHP手册-魔术函数
__sleep() 和 __wakeup()publicarray __sleep (void )void__wakeup ( void )class User { public $name; public $id; function __construct() { $this->id = uniqid();//give user a unique ID转载 2012-08-03 15:08:43 · 549 阅读 · 0 评论 -
PHP手册-use关键字
function ($quantity, $product) use ($tax, &$total) { $pricePerItem = constant(__CLASS__ . "::PRICE_" . strtoupper($product)); $total +=转载 2012-08-03 10:54:00 · 3478 阅读 · 0 评论 -
PHP手册-执行shell脚本
PHP 支持一个执行运算符:反引号(``)。注意这不是单引号!PHP 将尝试将反引号中的内容作为外壳命令来执行,并将其输出信息返回(例如,可以赋给一个变量而不是简单地丢弃到标准输出)。使用反引号运算符“`”的效果与函数 shell_exec() 相同$a=`dir C:Windows`; //列出C盘WIndows目录下的文件结构 等于 echo shell_exec('dir C:Windows原创 2012-08-02 14:37:04 · 515 阅读 · 0 评论 -
PHP手册-位运算
位运算符例子名称结果$a & $bAnd(按位与)将把 $a 和 $b 中都为 1 的位设为 1。$a | $bOr(按位或)将把 $a 或者 $b 中为 1 的位设为 1。$a ^ $bXor(按位异或)将把 $a 和 $b 中不同的位设为 1。~ $aNot(按位非)将 $a 中为 0转载 2012-08-02 14:29:27 · 334 阅读 · 0 评论 -
PHP手册-魔术常量
魔术常量:namespace ns1;class Test { function __construct() { var_dump(__LINE__); var_dump(__FILE__); var_dump(__DIR__); var_dump(__FUNCTION__); var_dump(__CLASS__); var_dump(__METHOD__);原创 2012-08-02 13:22:03 · 400 阅读 · 0 评论 -
PHP手册-命名空间
namespace false;const ENT_QUOTES = 'My value';echo ENT_QUOTES;//My valuenamespace false2;echo ENT_QUOTES;//3//const FALSE = 'Odd, eh?';//与命名空间冲突原创 2012-08-02 13:10:00 · 318 阅读 · 0 评论 -
php手册-类型转换
允许的强制转换有: (int), (integer) - 转换为 整型(integer)(bool), (boolean) - 转换为 布尔型(boolean)(float), (double), (real) - 转换为 浮点型(float)(string) - 转换为 字符串(string)(binary) - 转换为二进制 字符串(string) (PHP 6)(arra原创 2012-08-02 11:09:58 · 327 阅读 · 0 评论 -
PHP手册-关于浮点数精度的警告
以下第一个按理会返回8结构是7 为什么呢(int)( (0.1+0.7) * 10 ) //7(int)( (0.1+0.6) * 10 ) //7查了php手册发现如下,才了解:显然简单的十进制分数如同 0.1 或 0.7不能在不丢失一点点精度的情况下转换为内部二进制的格式。这就会造成混乱的结果:例如,floor((0.1+0.7)*10)通常会返回7 而不是预期中的原创 2012-08-02 09:14:18 · 383 阅读 · 0 评论 -
PHP手册-嵌套函数
function foo(){ function bar() { echo "I don't exist until foo() is called.\n"; }}/* 现在还不能调用bar()函数,因为它还不存在 */foo();/* 现在可以调用bar()函数了,因为foo()函数 的执行使得bar()函数变为已定义的函数 */bar();转载 2012-08-02 16:14:20 · 1570 阅读 · 0 评论 -
PHP手册-匿名方法(暂时不稳定不适合开发)
class Cart{ const PRICE_BUTTER = 1.00; const PRICE_MILK = 3.00; const PRICE_EGGS = 6.95; protected $products = array(); public function add($product, $quantity) { $this->products[$转载 2012-08-02 16:31:08 · 659 阅读 · 0 评论 -
PHP手册-对于单继承语言的扩展Trait
翻阅PHP手册时候无意间发现了这个东西PHP5.4新增的trait关键字,很有意思的东西,类似于把函数和成员方法include进一个类,有些地方写公共的方法之类比继承灵活很多,定义方法类似CLASStrait Hello { public $id = 2; public function __construct() { echo 'constructHello'; } publ原创 2012-08-03 10:49:22 · 1420 阅读 · 0 评论 -
PHP手册-强制客户端认证
if (!isset($_SERVER['PHP_AUTH_USER'])) { header('WWW-Authenticate: Basic realm="My Realm"'); header('HTTP/1.0 401 Unauthorized'); echo 'Text to send if user hits Cancel button'; exit;} else { ec转载 2012-08-08 09:36:50 · 570 阅读 · 0 评论 -
PHP手册-对文件操作权限验证
$username = $_SERVER['REMOTE_USER']; // 使用认证机制$userfile = $_POST['user_submitted_filename'];$homedir = "/home/$username";$filepath = "$homedir/$userfile";if (!ctype_alnum($username) || !p转载 2012-08-07 17:19:32 · 542 阅读 · 0 评论