摘要:是语句不是函数,有返回值,只能输出一个变量,不需要圆括号。这些特性使成为理想的数据交换语言。如果子类中定义了构造函数则不会隐式调用其父类的构造函数。要执行父类的构造函数,需要在子类的构造函数中调用。
PHP HTTP Keep-Alive的作用 作用
Keep-Alive:使客户端到服务器端的连接持续有效,当出现对服务器的后继请求时,Keep-Alive功能避免了建立或者重新建立连接。Web服务器,基本上都支持HTTP Keep-Alive。
缺点对于提供静态内容的网站来说,这个功能通常很有用。但是,对于负担较重的网站来说,虽然为客户保留打开的连 接有一定的好处,但它同样影响了性能,因为在处理暂停期间,本来可以释放的资源仍旧被占用。当Web服务器和应用服务器在同一台机器上运行时,Keep-Alive功能对资源利用的影响尤其突出。
解决Keep-Alive: timeout=5, max=100
timeout:过期时间5秒(对应httpd.conf里的参数是:KeepAliveTimeout),
max:是最多一百次请求,强制断掉连接。就是在timeout时间内又有新的连接过来,同时max会自动减1,直到为0,强制断掉。
php数组函数常见的那些? 数组遍历函数list(); //不是真正的函数,而是PHP的语言结构,用于给一组变量赋值,仅能用于索引数组 each(); //返回数组当前元素的键值对,并将指针移动到下一个元素位置 while(); //可配合list或each使用:while(list($key, $value) = each($arr)){each $key, $value; }数组内部指针控制
current(); //读取指针位置的内容 key(); //读取当前指针指向内容的索引值 next(); //将数组中的内部指针指向下一单元 prev(); //将数组内部指针倒回一位 end(); //将数组内部指针指向最后一个元素 reset(); //将目前指针指向第一个索引位置数组键值操作函数
array_values($arr); //获得数组的值 array_keys($arr); //获得数组的键名 array_flip($arr); //数组中的值与键名互换(如果有重复前面的会被后面的覆盖) array_search("PHP",$arr); //检索给定的值,加true则是严格类型检查 array_reverse($arr); //将数组中的元素翻转(前后顺序) in_array("apple", $arr); //在数组中检索apple array_key_exists("apple", $arr); // 检索给定的键名是否存在数组中 array_count_values($arr); // 统计数组中所有值出现的次数 array_unique($arr); // 删除数组中重复的值数组回调函数
array_filter(); //使用回调函数过滤数组中的元素,如果回调返回true则当前的元素被包含到返回数组中 array_walk(); //回调函数处理数组,自定义函数要有两个参数,本函数第三个参数可以作为回调第三个参数返回 array_map(); //可以处理多个数组,每个数组的长度应该相同,传入数组的个数和回调函数参数个数应该一致数组的分段和填充
array_slice($arr, 0, 3); //将数组中的一段取出,此函数忽略键名(数组的分段) array_splice($arr, 0, 3,array("black","maroon")); //将数组中的一段取出,返回的序列从原数组中删除 array_chunk($arr, 3, TRUE); //将一个数组分割成多个,TRUE为保留原数组的键名(分割多个数组)数组与栈,列队
array_push($arr, "apple", "pear"); //将一个或多个元素压入数组栈的末尾(入栈),返回入栈元素的个数 array_pop($arr); // 将数组栈的最后一个元素弹出(出栈) array_shift($arr); //数组中第一个元素移出并返回(长度减1,其他元素向前移动一位,数字键名改为从零计数,文字键名不变) array_unshift($arr,"a",array(1,2)); //在数组的开头插入一个或多个元素数组的排序
sort($arr); //由小到大,忽略键名 rsort($arr); //由大到小,忽略键名 asort($arr); //由小到大,保留键名 arsort($arr); //由大到小,保留键名 ksort($arr); //按照键名正序排序 krsort($arr); //按照键名逆序排序数组的计算
array_sum($arr); //对数组内部的所有元素做求和运算(数组元素的求和) array_merge($arr1, $arr2); //合并两个或多个(相同字符串键名,后面覆盖前面,相同的数字键名,后面的附加到后面) array_diff($arr1, $arr2); //返回差集结果数组 array_diff_assoc($arr1, $arr2, $arr3); //返回差集结果数组,键名也做比较 array_intersect($arr1, $arr2); //返回交集结果数组 array_intersect_assoc($arr1, $arr2); //返回交集结果数组,键名也做比较其他的数组函数
array_unique($arr); //移除数组中重复的值,新的数组中会保留原始的键名 shuffle($arr); // 将数组的顺序打乱PHP中几个输出函数echo,print(),print_r(),sprintf(),var_dump()的区别
echo:是语句不是函数,没有返回值,可输出多个变量值,不需要圆括号。不能输出数组和对象,只能打印简单类型(如int,string)。
print:是语句不是函数,有返回值 1 ,只能输出一个变量,不需要圆括号。不能输出数组和对象,只能打印简单类型(如int,string)。
print_r:是函数,可以打印复合类型,例如:stirng、int、float、array、object等,输出array时会用结构表示,而且可以通过print_r($str,true)来使print_r不输出而返回print_r处理后的值
printf:是函数,把文字格式化以后输出(参看C语言)
sprintf:是函数,跟printf相似,但不打印,而是返回格式化后的文字(该函数把格式化的字符串写写入一个变量中,而不是输出来),其他的与printf一样。
$str = "Hello"; $number = 123; $txt = sprintf("%s world. Day number %u",$str,$number); //输出: Hello world. Day number 123 var_dump():函数,输出变量的内容、类型或字符串的内容、类型、长度。常用来调试。
可以通过function_exists("函数名称")进行测试
var_dump(function_exists("print")); //bool(false) var_dump(function_exists("echo")); //bool(false) var_dump(function_exists("print_r")); //bool(trueheredoc
Heredoc在正规的PHP文档中和技术书籍中一般没有详细讲述。他是一种Perl风格的字符串输出技术。使用heredoc技术可以实现界面与代码的准分离,比如phpwind模板。
heredoc的语法是用”<<<”加上自己定义成对的标签,在标签范围內的文字视为一个字符串
以<<
位于开始标记和结束标记之间的变量可以被正常解析,但是函数则不可以。在heredoc中,变量不需要用连接符 . 或 , 来拼接,比如:
$a=2; $b= <<heredoc常用在输出包含大量HTML语法文档的时候。他要比传统的echo输出精炼很多,如下所示:
function getHtml(){ echo ""; echo "Title "; echo "Content"; echo ""; } function getHtml(){ echo <<Title Content