PHP
4
引入了
foreach
结构,和
Perl
以及其他语言很像。这只是一种遍历数组简便方法。foreach
仅能用于数组,当试图将其用于其它数据类型或者一个未初始化的变量时会产生错误。有两种语法,第二种比较次要但却是第一种的有用的扩展。
复制代码
代码如下:
foreach
(array_expression
as
$value)
statement
foreach
(array_expression
as
$key
=>
$value)
statement
第一种格式遍历给定的
array_expression
数组。每次循环中,当前单元的值被赋给
$value
并且数组内部的指针向前移一步(因此下一次循环中将会得到下一个单元)。
第二种格式做同样的事,只除了当前单元的键名也会在每次循环中被赋给变量
$key。
自PHP
5
起,还可能遍历对象。
注意:当
foreach
开始执行时,数组内部的指针会自动指向第一个单元。这意味着不需要在
foreach
循环之前调用
reset()。
注意:除非数组是被引用,foreach
所 *** 作的是指定数组的一个拷贝,而不是该数组本身。foreach对数组指针有些副作用。除非对其重置,在
foreach
循环中或循环后都不要依赖数组指针的值。
自
PHP
5
起,可以很容易地通过在
$value
之前加上
&
来修改数组的元素。此方法将以引用赋值而不是拷贝一个值。
复制代码
代码如下:
<php
$arr
=
array(1,
2,
3,
4);
foreach
($arr
as
&$value)
{
$value
=
$value
2;
}
//
$arr
is
now
array(2,
4,
6,
8)
>
此方法仅在被遍历的数组可以被引用时才可用(例如是个变量)。
复制代码
代码如下:
<php
foreach
(array(1,
2,
3,
4)
as
&$value)
{
$value
=
$value
2;
}
>
我们在学习PHP开发相关基础知识的时候,对于不同的开发原理以及代码的使用都是基本的能力要求。今天,云南电脑培训http://wwwkmbdqncn/就一起来了解PHP开发基础知识中的函数代码都有哪些。
array()
array(value1,value2)创建数组
array_chunk(array,size,preserve_keys)把一个数分割成新的数组块[tk]
array_combine(keys,values)通过合并两个数组(键名数组,键值数组)组成一个新的数组
array_count_values(array)用于统计数组中所有值出现的次数
array_diff(array1,array2,)比较数组返回两个数组的差集(只比较键值)
array_diff_assoc(array1,array2,)比较数组返回两个数组的差集(比较键名和键值)
array_diff_key(array1,array2,)比较数组返回两个数组的差集(只比较键名)
array_fill(index,number,value)用给定的键值填充数组
array_filter(array,要用的回调函数)用回调函数过滤数组中的元素
array_flip(array)反转/交换数组中的键名和对应关联的键值[flp]
array_keys(array)返回数组中的所有键名
array_merge(array1,array2,)把一个或多个数组合并一个数组[m:rd]
array_pad(array,size,value)将指定数量的带有指定值的元素插入到数组中
array_pop(array)删除后一个元素
array_push(array)末尾添加数组
array_shift(array())删除数并返回被删除的元素值
array_unshift(array))组中的一个元素添加一个或多个元素
array_rand(array,number)从数组中随机选出一个或多个数组
array_replace(array1,array2)使用后面数组的值替换一个数组的值
array_reverse(array)数组反转并返回新的数组
array_search(value,array,strict(可选true,flase))搜索值返回键名。True搜索键名和值都一样的元素
array_slice(array,start,length,preserve)返回数组中的选定部分
array_splice(array,start,length,array)把指定的元素去掉并用其他的替换
array_unique(array)删除数组中的重复值美[junik]
array_values(array)返回数组中的所有值
array_key_exists(key,array)查找数组键名是否存在
count(array)返回数组中元素的数目美[kant]
in_array(‘值’,$array,bool)检查数组中是否存在指定的值设置为TRUE,则in_array
函数检查搜索的数据与数组的值的类型是否相同。
php常用的数组函数的作用特点如下:
array_change_key_case -- 返回字符串键名全为小写或大写的数组
array_chunk -- 将一个数组分割成多个
array_combine -- 创建一个数组,用一个数组的值作为其键名,另一个数组的值作为其值
array_count_values -- 统计数组中所有的值出现的次数
array_diff_assoc -- 带索引检查计算数组的差集
array_diff_key -- 使用键名比较计算数组的差集
array_diff_uassoc -- 用用户提供的回调函数做索引检查来计算数组的差集
array_diff_ukey -- 用回调函数对键名比较计算数组的差集
array_diff -- 计算数组的差集
array_fill_keys -- 使用指定的键和值填充数组
array_fill -- 用给定的值填充数组
array_filter -- 用回调函数过滤数组中的单元
array_flip -- 交换数组中的键和值
array_intersect_assoc -- 带索引检查计算数组的交集
array_intersect_key -- 使用键名比较计算数组的交集
array_intersect_uassoc -- 带索引检查计算数组的交集,用回调函数比较索引
array_intersect_ukey -- 用回调函数比较键名来计算数组的交集
array_intersect -- 计算数组的交集
array_key_exists -- 检查给定的键名或索引是否存在于数组中
array_keys -- 返回数组中所有的键名
array_map -- 将回调函数作用到给定数组的单元上
array_merge_recursive -- 递归地合并一个或多个数组
array_merge -- 合并一个或多个数组
array_multisort -- 对多个数组或多维数组进行排序
array_pad -- 用值将数组填补到指定长度
array_pop -- 将数组最后一个单元d出(出栈)
array_product -- 计算数组中所有值的乘积
array_push -- 将一个或多个单元压入数组的末尾(入栈)
array_rand -- 从数组中随机取出一个或多个单元
array_reduce -- 用回调函数迭代地将数组简化为单一的值
array_replace_recursive -- 使用传递的数组递归替换第一个数组的元素
array_replace -- 使用传递的数组替换第一个数组的元素
array_reverse -- 返回一个单元顺序相反的数组
array_search -- 在数组中搜索给定的值,如果成功则返回相应的键名
array_shift -- 将数组开头的单元移出数组
array_slice -- 从数组中取出一段
array_splice -- 把数组中的一部分去掉并用其它值取代
array_sum -- 计算数组中所有值的和
array_udiff_assoc -- 带索引检查计算数组的差集,用回调函数比较数据
array_udiff_uassoc -- 带索引检查计算数组的差集,用回调函数比较数据和索引
array_udiff -- 用回调函数比较数据来计算数组的差集
array_uintersect_assoc -- 带索引检查计算数组的交集,用回调函数比较数据
array_uintersect_uassoc -- 带索引检查计算数组的交集,用回调函数比较数据和索引
array_uintersect -- 计算数组的交集,用回调函数比较数据
array_unique -- 移除数组中重复的值
array_unshift -- 在数组开头插入一个或多个单元
array_values -- 返回数组中所有的值
array_walk_recursive -- 对数组中的每个成员递归地应用用户函数
array_walk -- 对数组中的每个成员应用用户函数
array -- 新建一个数组
arsort -- 对数组进行逆向排序并保持索引关系
asort -- 对数组进行排序并保持索引关系
compact -- 建立一个数组,包括变量名和它们的值
count -- 计算数组中的单元数目或对象中的属性个数
current -- 返回数组中的当前单元
each -- 返回数组中当前的键/值对并将数组指针向前移动一步
end -- 将数组的内部指针指向最后一个单元
extract -- 从数组中将变量导入到当前的符号表
in_array -- 检查数组中是否存在某个值
key -- 从关联数组中取得键名
krsort -- 对数组按照键名逆向排序
ksort -- 对数组按照键名排序
list -- 把数组中的值赋给一些变量
natcasesort -- 用“自然排序”算法对数组进行不区分大小写字母的排序
natsort -- 用“自然排序”算法对数组排序
next -- 将数组中的内部指针向前移动一位
pos -- current 的别名
prev -- 将数组的内部指针倒回一位
range -- 建立一个包含指定范围单元的数组
reset -- 将数组的内部指针指向第一个单元
rsort -- 对数组逆向排序
shuffle -- 将数组打乱
sizeof -- count 的别名
sort -- 对数组排序
uasort -- 使用用户自定义的比较函数对数组中的值进行排序并保持索引关联
uksort -- 使用用户自定义的比较函数对数组中的键名进行排序
usort -- 使用用户自定义的比较函数对数组中的值进行排序
关于如何使用,那是要根据使用者需求来衡量,不能一言概括
使用语法如下:
<php$arr = array('Hello','World!');
$arr = implode(',',$arr);
echo $arr;
>
结果是:HelloWorld!
如果你想更多的了解php的数组函数,我建议你详细地去看看php手册
php手册官网:http://wwwphpnet/manual/zh/indexphp
PHP提供4个专门的执行外部命令的函数:exec(), system(), passthru(), shell_exec()
1)exec()
原型: string exec ( string $command [, array &$output [, int &$return_var ]] )
说明: exec执行系统外部命令时不会输出结果,而是返回结果的最后一行。如果想得到结果,可以使用第二个参数,让其输出到指定的数组。此数组一个记录代表输出的一行。即如果输出结果有20行,则这个数组就有20条记录,所以如果需要反复输出调用不同系统外部命令的结果,最好在输出每一条系统外部命令结果时清空这个数组unset($output),以防混乱。第三个参数用来取得命令执行的状态码,通常执行成功都是返回0。
<php
exec("dir",$output);
print_r($output);
>
2)system()
原型: string system ( string $command [, int &$return_var ] )
说明: system和exec的区别在于,system在执行系统外部命令时,直接将结果输出到游览器,如果执行命令成功则返回true,否则返回false。第二个参数与exec第三个参数含义一样。
<php
system("pwd");
>
3)passthru()
原型: void passthru ( string $command [, int &$return_var ] )
说明: passthru与system的区别,passthru直接将结果输出到游览器,不返回任何值,且其可以输出二进制,比如图像数据。第二个参数可选,是状态码。
<php
header("Content-type:image/gif");
passthru("/usr/bin/ppm2tiff /usr/share/tk84/demos/images/teapotppm");
>
4)shell_exec()
原型: string shell_exec(string $cmd)
说明: 直接执行命令$cmd
<php
$output = shell_exec('ls -lart');
echo "<pre>$output</pre>";
>
防超时的处理方法:
当执行命令的返回结果非常庞大时,可以需要考虑将返回结果输出至其他文件,再另行读取文件,这样可以显著提高程序执行的效率。
如果要执行的命令要花费很长的时间,那么应该把这个命令放到系统的后台去运行。但在默认情况下,
象system()等函数要等到这个命令运行完才返回(实际上是在等命令的输出结果),
这肯定会引起PHP脚本的超时。解决的办法是把命令的输出重定向到另外一个文件或流中,如:
<php
system("/usr/local/bin/order_proc > /tmp/abc ");
>
<
$filename=time()"data";
exec("/app/gm/gm_center/test/hellopy > $filename",$output);
var_dump ($output);
>
魔术函数1。__construct()
实例化对象时被调用,
当__construct和以类名为函数名的函数同时存在时,__construct将被调用,另一个不被调用。2。__destruct()
当删除一个对象或对象 *** 作终止时被调用。3。__call()
对象调用某个方法,
若方法存在,则直接调用;
若不存在,则会去调用__call函数。4。__get()
读取一个对象的属性时,
若属性存在,则直接返回属性值;
若不存在,则会调用__get函数。5。__set()
设置一个对象的属性时,
若属性存在,则直接赋值;
若不存在,则会调用__set函数。6。__toString()
打印一个对象的时被调用。如echo $obj;或print $obj;7。__clone()
克隆对象时被调用。如:$t=new Test();$t1=clone $t;8。__sleep()
serialize之前被调用。若对象比较大,想删减一点东东再序列化,可考虑一下此函数。9。__wakeup()
unserialize时被调用,做些对象的初始化工作。10。__isset()
检测一个对象的属性是否存在时被调用。如:isset($c->name)。11。__unset()
unset一个对象的属性时被调用。如:unset($c->name)。12。__set_state()
调用var_export时,被调用。用__set_state的返回值做为var_export的返回值。13。__autoload()
实例化一个对象时,如果对应的类不存在,则该方法被调用。魔术常量1。__LINE__
返回文件中的当前行号。2。__FILE__
返回文件的完整路径和文件名。如果用在包含文件中,则返回包含文件名。自 PHP 402 起,__FILE__ 总是包含一个绝对路径,而在此之前的版本有时会包含一个相对路径。3。__FUNCTION__
返回函数名称(PHP 430 新加)。自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。4。__CLASS__
返回类的名称(PHP 430 新加)。自 PHP 5 起本常量返回该类被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。5。__METHOD__
返回类的方法名(PHP 500 新加)。返回该方法被定义时的名字(区分大小写)。
(1)初识魔术方法
Php50发布以来为我们提供了很多面向对象的特性,尤其是为我们提供了好多易用的魔术方法,这些魔术方法可以让我们简化我们的编码,更好的设计我们的系统。今天我们就来认识下php50给我们提供的魔术方法。
$_SERVER['SCRIPT_NAME'] 返回/mantis/testphp,相对路径;
__FILE__ 返回文件的绝对路径D:\Projects\mantis\testphp
$_SERVER['HTTP_X_FORWARDED_PROTO']
$_SERVER['HTTPS']
$_SERVER['SERVER_PORT']
$_SERVER["REQUEST_URI"] URI 用来指定要访问的页面
$GLOBALS一个包含了全部变量的全局组合数组。变量的名字就是数组的键。
explode 使用一个字符串分割另一个字符串 返回一个字符串数组
implode 使用一个字符将数组元素链接成字符串
$_SERVER['SERVER_NAME'] 当前脚本所在服务器的主机名
$_SERVER['HTTP_HOST'] 域名
$_SERVER['SERVER_ADDR'] 当前脚本所在服务器的IP地址
trim去除字符串首尾处的空白字符
basename 返回文件名部分
dirname 返回目录部分
krsort — 对数组按照键名逆向排序
set_time_limit()设置脚本最大执行时间
time() 返回当前的unix时间戳
is_string()判断变量是不是字符串
is_bool
is_Inteter
is_float
strtotime -- 将任何英文文本的日期时间描述解析为 UNIX 时间戳
file_exists 检查文件或目录存不存在
fopen()打开指定的文件或URL
feof()判断文件指针是否在末尾
fgets()从文件指针中读取一行
trim()去掉一行前后的空格
strlen()返回字符串的长度
str_replace
isset
str_replace( "\0", '', $t_self ) 将t_self中的\0替换成“”
strpos — 查找在字符串中首次出现的位置
<php
echo strpos("www5wxorg, I love php too!","php");
>
$_SERVER['SERVER_SOFTWARE'] 服务器信息
realpath 返回规范化的绝对路径名
DIRECTORY_SEPARATOR *** 作系统目录分隔符
PATH_SEPARATOR 在linux系统中是一个" : "号,Windows上是一个";"号
set_include_path 设置incldue_path
get_include_path 获取当前include_path
count() 返回数组长度,非数组返回1
substr(string string ,int start [int length]) 返回从start指定位置开始的长度的字符串
$_SERVER['LOCAL_ADDR'] IIS7上用来获取服务器IP地址
$_SERVER['REMOTE_ADDR'] 浏览器用户的IP地址
array_pad — 用值将数组填补到指定长度
memory_get_usage()返回分配给PHP的内存量
spl_autoload_register 注册__autoload()函数
ob_get_contents() Return the contents of the output buffer
strtolower() 将大写字母转换为小写字母
extension_loaded('zlib')找出扩展是否被加载
ini_get 返回phpini中配置项的值
ini_set 设置phpini中配置项的值 ,ini_set("memory_limit",'256M'); 只在脚本执行期间生效,脚本执行完成该值重置
PHP_EOL PHP行结束符
preg_replace 执行一个正则表达式的替换
preg_match(string pattern, string subject [, array matches [, int flags]]) -- 进行正则表达式匹配
htmlspecialchars Convert special characters to HTML entities
ceil() 进一法取整
floor() 舍去法取整
round()四舍五入法
以上就是php 最常用的内置函数大全的详细内容
PHP字符串查找的函数的函数比较多,这里演示下常用几种使用方法:
php//1strstr()函数:用于获取一个指定字符串在另一个字符串中首次出现的位置开始,直到结束的子字符串,//如果执行成功,则返回剩余字符串;否则返回false。echo
strstr("zhidaobaiducom","baidu");
//baiducom
//2
strpos()函数:返回字符串在另一个字符串中第一次出现的位置。如果没有找到字符串,则返回false。$str
=
'hello,iambaiduzhidao!';$find
=
'zhidao';if(strpos($str,$find)!==false){echo
'字符串包含:zhidao!';}else{echo
'字符串不包含:zhidao!';}//输出结果:字符串包含:zhidao!
//返回字符串zhidao在str中第一次出现的位置echo
strpos($str,$find);//14
定义和用法
krsort() 函数对关联数组按照键名进行降序排序。
提示:请使用 ksort() 函数对关联数组按照键名进行升序排序。
提示:请使用 arsort() 函数对关联数组按照键值进行降序排序。
语法
krsort(array,sortingtype);
参数 描述
array 必需。规定要进行排序的数组。
sortingtype 可选。规定如何排列数组的元素/项目。可能的值:
0 = SORT_REGULAR - 默认。把每一项按常规顺序排列(Standard ASCII,不改变类型)。
1 = SORT_NUMERIC - 把每一项作为数字来处理。
2 = SORT_STRING - 把每一项作为字符串来处理。
3 = SORT_LOCALE_STRING - 把每一项作为字符串来处理,基于当前区域设置(可通过 setlocale() 进行更改)。
4 = SORT_NATURAL - 把每一项作为字符串来处理,使用类似 natsort() 的自然排序。
5 = SORT_FLAG_CASE - 可以结合(按位或)SORT_STRING 或 SORT_NATURAL 对字符串进行排序,不区分大小写。
定义和用法
ksort() 函数对关联数组按照键名进行升序排序。
提示:请使用 krsort() 函数对关联数组按照键名进行降序排序。
提示:请使用 asort() 函数对关联数组按照键值进行升序排序。
对关联数组按照键名进行升序排序:"35","Ben"=>"37","Joe"=>"43")
ksort($age);
>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)