php基础小知识
echo 输出无返回值,echo比Print快,因为它没有返回值。
Print 输出有返回值,返回值为整数。
Printf 输出有返回值,返回值为字符串的长度。
Sprintf 有参数,将数据保存在内存中,需要echo将字符串输出。
使用$sum,即 使用$后跟标识符名称来定义一个变量,php是弱类型语言,变量只有在赋值后才能确定它的类型。不像其他语言,变量在使用之前必须声明它的类型。
php有隐型类型转换,即$sum=1;$a=”hello”,$sum=$a;此时变量sum的类型就是字符串类型。也有强制类型转换,也就是显示类型转换,即$sum=0;(string)$sum;将sum强制转换为字符串型。
使用gettype()获取变量的类型,返回值为类型的string,例:gettype($sum);使用settype()设置变量的类型,返回值为布尔值,例:settype($sum,int);使用isset()判断一个变量是否存在,返回值为布尔值;使用unset()销毁一个变量,返回值为布尔值;使用empty()判断一个变量的值是否为空,返回值为布尔值。
超全局变量:$_SERVER,$_POST,$_GET...
php访问表单数据:(1)$userName 即$后跟表单的名称不允许使用,与普通变量容易混淆。
(2)$_POST[‘uerName’] 推荐使用
(3)$HTTP_POST_VARS[‘userName’] 不推荐使用
字符串链接用’.’;例如:”这个学生的姓名是:”.$userName;
“+”表示数值相加;
PHP中双引号可以解析字符串里的变量和转义字符。
break是退出整个循环,continue是退出本次循环,进入下次循环;exit是退出当前程序。
函数:is_int()判断变量是否为整数;is_float()判断变量是否为浮点数;is_numberic()判断变量的值是否为数字或数字字符串;rand()返回一个整数(0-32767);rand(min,max)返回一个min-max之间的整数;mt_rand()等价于rand(),不过比rand()速度快;getrandmax()返回最大的随机数;mt_getrandmax()等价于getrandmax(),返回最大的随机数(2147483647);number_format()格式化数字字符串;abs()求绝对值;floor()舍去法求整;rand()四舍五入;min()求最小值;max()求最大值;ceil()进一步取整;
php数组
创建数组 (1)$userNames=arrry(“傻子”,”疯子”,”小飒”);(2)使用range(),建立一个包含指定范围的单元数组,例:$a=range(1,10);创建一个从0到10的数组。$b=range(‘a’,’z’);创建一个从’a’到’z’的数组。
print_r()打印关于变量易于理解的信息。
count()返回数组中元素的个数。
foreach用于遍历循环数组,不用考虑key;例:foreach($userNames as $key => $value){ echo $key.”---”.$value;echo “<br />”;}
is_array()判断变量是否为数组,返回值为布尔值。
自定义键数组
$userNames=arrry(‘you’ => ‘傻子’,’me’ => ’疯子’,’he’ => ’小飒’);
自定义键数组追加数组 首先创建数组如下:$userAges=array(‘傻子’ => 19);或$user[‘傻子’]=19;
追加数组如下:$userAges[‘疯子’]=20; $userAges[‘小飒’]=21;
自定义键数组不能通过for循环访问数组元素,只能通过foreach访问数组元素。例:
Foreach($userAges as $key => $value){ }
each的使用:返回数组中当前的键值对,将数组指针向前移动一步。返回值为一个数组,首先,对于一个数组,指向第一个元素,将第一个键值对获取,然后包装成一个新数组,此时指针移动指向第二个元素。例:$userAges=array(‘疯子’=>19,’傻子=>20,’小飒’=>21’);print_r(each($userAges));执行后的结果为Array([0] => ’疯子’,[key] => ’疯子’,[1] =>19,[value]=>19);
可以用each来循环数组变量 例:while(!!$a=each($usereAges)){echo $a[key].’---’.$a[value].’<br />’;}。
List()把数组中的值赋给一些变量,返回一个数组。List()只能认识key为数字的数组,List()无法识别自定义键为字符串的数组。例:$userAges=array(‘疯子’ => 19,’傻子’ => 20,’小飒’ => 21);$a=each($userAges);list($name,$age)=$a;echo $name;echo $age;结果为疯子、19。也就是把数组a的Key赋值给$name,数组a的值赋给$age;
reset()将数组的内部指针指向第一个单元。
array_unique()用来移除数组中重复的值,创建了一个新的数组,返回新数组,旧数组原封不动。
array_flip()用来交换数组中的键和值,创建了一个新的数组,返回新数组的,旧数组原封不动。
数组里的数组(二维数组)的创建:例:(1)$products=array(array(‘苹果’,6,28.8),array(‘猪肉’,2,32.1),array(‘饼干’,3,45.3));
访问二位数组:for($row=0;$row<count($products);$row++){
for($col=0;$col<count($products[$row]);$col++){ } }
(2) $products=array(array(‘产品名’ => ‘苹果’,’数量’ => 6,’价格’ => 28.8),array(‘产品名’ => ‘猪肉’,’数量’ => 2,’价格’ => 32.1),array(‘产品名’ => ‘饼干’,’数量’ => 3,’价格’ => 45.3));
访问自定义键二维数组:for($row=0;$row<count($products);$row++){
foreach($products[$row] as $key => $value){ } }
或者for($row=0;$row<count($products);$row++){
while(!!list($key,$value)=each($products[$row])){ } }
数组排序
sort()返回布尔值,按照字母顺序进行排序,第二个参数为可选参数。
asort()保留索引关系,进行排序,返回值为布尔值。
ksort()按照键的顺序进行排序,返回值为布尔值。
rsort()、arsort()、krsort()分别都是sort()、asort()、ksort()的逆向排序结果。
shuffle()将数组元素打乱,随机排序。
一般array_打头的函数都会创建一个新的数组。也有例外如下函数。
array_unshift()将数组元素添加在数头部,返回数组的元素个数。例:array_unshift($userNames,’大傻子’);
array_push()将数组元素添加在数组的尾部,返回数组的元素个数。
array_shift()从数组头部进行删除元素,返回数组元素个数。例:array_shift($userNames);
array_pop()从数组尾部进行删除元素,返回数组元素个数。
array_rand()从数组中随机取出一个或多个单元,第二个参数表示用来获取数组中的一个或几个键,也可以表示随机获取几个值。例:array_rand($userNames,2);表示从数组中随机取出两个元素的键,也就可以获得这两个元素的值。
current()获取指针的当前元素,指针不会移动到下一个元素。
next()获取下一个元素的指针。
reset()将指针指向第一个单元。
pos()也就是current()的别名。
prev()将数组内部指针倒回一位。
count()、sizeof()统计数组中的元素个数。
array_count_values()统计数组中下标值的个数,统计数组中所有值出现的次数。
extract()通过标量函数将字符串键设置为变量,将值赋值给变量。