PHP基础巩固(一)
Php变量类型(8种):整型,浮点型,字符串,数组,布尔,对象,资源
Echo 适合打印整形,字符串,bool类型ture输出1,false不输出,array只打印类型及输出array;
Isset $a=NULL;isset($a)=false;
Bool为false的变量:’’ 、’0’、0、0.0、NULL、false、array()。
类型强制转换,允许的强制转换有:
- (int), (integer) - 转换为整形 integer
- (bool), (boolean) - 转换为布尔类型 boolean
- (float), (double), (real) - 转换为浮点型 float
- (string) - 转换为字符串 string
- (array) - 转换为数组 array
- (object) - 转换为对象 object
- (unset) - 转换为 NULL (PHP 5)
- (binary) 转换和 b 前缀转换支持为 PHP 5.2.1 新增。将字符串文字和变量转换为二进制字符串
<?php
$binary
= (binary)
$string
;
$binary
=
b"binary string"
;
?>
表达式 | boolean : if($x) | ||||
$x = ""; | TRUE | FALSE | TRUE | FALSE | |
$x = null; | TRUE | TRUE | FALSE | FALSE | |
var $x; | TRUE | TRUE | FALSE | FALSE | |
$x is undefined | TRUE | TRUE | FALSE | FALSE | |
$x = array(); | TRUE | FALSE | TRUE | FALSE | |
$x = false; | TRUE | FALSE | TRUE | FALSE | |
$x = 0; | TRUE | FALSE | TRUE | FALSE | |
$x = "0"; | TRUE | FALSE | TRUE | FALSE |
变量赋值与引用赋值
$a=12;$b=7;
$a=$b;//a=7,b=7;
$a=17;//a=17,b=7;
变量赋值:就好比两个人看两台电视一个人换台不影响另一个人,如果你想和我看我看的台比如30台,我告诉你,你调到30台就好了,但你要换台,对我没影响。
$a=5;$b=7;
$a=&$b;//a=7,b=7;
$a=10;//a=10,b=10;
引用赋值:我在看电视,你在打游戏,你不打游戏了,要来看电视,这样我们两个人看同一台电视,你要换台,那我也只能看你换的台了,你变我就变。
销毁变量:unset
$a=10; Unset($a)=> $a is undefined
动态变量:$$a;
算数运算符:%,取余算法时,结果取决于被除数的正负。
-10%3=-1;
比较运算符:==与===
===恒等,类型与之相同时为真一般用于与0相关的判断使用,比如查索引,字符串首次出现的位置。
例:
$a='abcd';
$b=stripos($a,'a');//返回0;
$c=stripos($a,'4'); //返回bool(false);
if(!(stripos($a,'a')===false)){
echo '找到了a'; //结果为找到了a;
}
else{
echo '没找到a';
}
递增递减运算符:
$a=5;
$b=$a++;//a=6,b=5;执行过程:$b=$a;$a=$a+1;
$a=5;
$b=++$a;//a=6,b=6;执行过程:$a=$a+1;$b=$a;
函数不区分大小写。
函数作用域:
局部变量、全局变量、超级全局变量(在页面的任何部分都可以访问$_get)。
动态调用函数:
function fun(){
echo ‘你好!’;
}
fun();
=>$hello=’fun’;
$hello();
时间戳函数:time();microtime();返回到微秒数。Microtime(true);
时间戳格式化:date();date(‘Y-m-d H:i:s’,time());
Mktime([时,分,秒,月,日,年]);时间转时间戳
Strtotime(‘now’);
Strtotime(‘now +1 day’);
Checkdate(月,日,年);检测日期是否合法,返回true,false
字符串定义方式:
定义大段文本:heredoc、nowdoc
//注:HTML不是固定的,可自定义
//内部变量也解析,同“”,‘’的区别,用法同“”。
//结束表示符必须独占一行,且必须顶格写,最后以 ‘;’分号结尾。
$str=<<<HTML
Hello word
Abc
Ok now
HTML;
Echo $str;
//nowdoc,定义头标签要加‘’,内部变量不解析,同“”,‘’的区别,=》‘’。
$str=<<<‘INFO’
Hello word
Abc
Ok now
INFO;
Echo $str;
单引号只能转义单引号\’与反斜线\\
字符串常用函数:
Strlen()//返回字符串长度int型,按字节数,utf-8,一个中国字占三个字节。
Mb_strlen($str,“编码”);//按字符数
Substr($str,index,[length]);//length<0,表示剩余几个不截,index<0表示从//后往前数从第几个开始截。
数组:
数组的游标操作:current(),next(),prev(),end(),reset(),each()。
each()函数返回输入数组当前键/值对,并将指针推进一个位置。返回的数组包含四个键,键0和key包含键名,而键1和value包含相应的数据。如果执行each()前指针位于数组末尾,则返回FALSE。
list — 把数组中的值赋给一些变量
使用数组游标遍历数组,出现问题:
$arr=array(1,2,3,false,4,5);
print_r($arr);
echo "<br/>";
while($v=current($arr)){
echo $v; //123
next($arr);
}
用each();
reset($arr);
echo "<pre>";
print_r(each($arr));
echo "</pre>";
输出:
Array
(
[1] => 1
[value] => 1
[0] => 0
[key] => 0
)
reset($arr);
while(list($key,$value)=each($arr)){
echo "<pre>";
echo $key,'---',$value;
echo "</pre>";
};
while($arr1=each($arr)){
echo "<pre>";
print_r( $arr1);
echo "</pre>";
};
一只羊,第一年生一只小羊,第三年生一只小羊,第五年死亡,二十年后有多少只羊?
01234
$yang=array(1,0,0,0,0);
for($i=1;$i<=20;$i++){
$tmp=$yang[1]+$yang[3];
array_unshift($yang,$tmp);
array_pop($yang);
}
print_r($yang);
echo array_sum($yang);
这是一个猴子选大王的题目
猴子按1,2..........n编号,坐一圈,从第一只按1,2.....m报数,报m的退出,一直循环,直到剩一只,输出大王的号