PHP基础2

/* PHP弱类型语言:数据类型,由存储值决定 (比如:瓶子:酱油,醋,酒等) 
 * C ,java 强类型语言:必须声明变量类型(酒瓶)
 */
$userName ='rose';
$age = 18;
$sex = '男';
$addr = '北京';
$salary = 8888.88;
$married = true;  // true false
var_dump($userName,$age,$sex,$addr,$salary,$married);
-------------------------------------------------------------------------------

header('Content-Type:text/html;charset=utf-8');
// 整型(Integer Int)
$int = 20;
var_dump($int);//int(20)
echo '
'
; $int = -28; var_dump($int);//int(-28) echo '
'
; // 二进制(0b开头) $int = 0b0111; echo $int;//7 /* 二进制转为十进制(从右往左算) * 0111 = 1*2^0 + 1*2^1 +1*2^2 +0*2^3=7 * * 456 = 6*10^0 + 5*10^1 +4*10^2 = 456 */ echo '
'
; // 八进制(0开头) $int = 056; echo $int; /* 八进制转为十进制 *056 = 6*8^0 +5*8^1 =6+40 = 46 */ echo '
'
; // 十六进制(0x开头) $int = 0x123; echo $int; /*十六进制转为十进制 *056 = 3*16^0 +2*16^1 +1*16^2=3+32+256=291 */ echo '
'
; /*b.整型的最大值与操作系统有关系 PHP_INT_MAX 看最大值, 超出最大值会产生溢出 */ echo PHP_INT_MAX; echo '
'
; $int = 2147483647;/* 4字节 4Byte(2^32) 1024B = 1KB 1024KB =1MB */ var_dump($int);//int(2147483647) echo '
'
; $int = $int +1; var_dump($int);//float(2147483648)溢出了 ------------------------------------------------------------------------------- header('Content-Type:text/html;charset=utf-8'); $float = 45.78; var_dump($float);//float(45.78) echo '
'
; $float = -45.78; var_dump($float);//float(-45.78) echo '
'
; // 科学计数法( e或 E) $float = 2.1e2; var_dump($float);//210 echo '
'
; $float = 2.1e-2; var_dump($float);//0.021 echo '
'
; /* c.PHP中浮点型存近似值,所以不要对 浮点型进行比较 */ var_dump((0.1+0.7)*10==8); //7.99999!=8不稳定直接就是不相等的 ------------------------------------------------------------------------------- header('Content-Type:text/html;charset=utf-8'); $married = true; var_dump($married);//bool(true) echo '
'
; echo $married;// '1' echo '
'
; $married = false; var_dump($married);//bool(false) echo '
'
; echo $married;//空字符串'' ------------------------------------------------------------------------------- header('Content-Type:text/html;charset=utf-8'); // 单引号和 双引号的区别 // (a)双引号能解析变量,而单引号不解析变量 $username = 'tom'; echo '用户名是:',$username; echo '
'
; echo '用户名是:$username'; echo '
'
; echo "用户名是:$username"; echo '
'
; echo '
'
; /*(b)双引号能解析所有的转义字符,单引号只能 解析 \' 和 \\ */ /*转义字符(在源码中的特殊符号) \' 单引号 \" 双引号 \n 换行 \r 回车 \t 水平制表符 \v 垂直制表符 \\ 反斜杠 */ echo 'this is a \n test
'
; echo "this is a \n test
"
; echo 'this is a \\ test
'
; echo "this is a \\ test
"
; ------------------------------------------------------------------------------- header('Content-Type:text/html;charset=utf-8'); /*(a)W3C规定在浏览器中看到特殊符号必须用 HTML实体,PHP中也必须用HTML实体实现 D>A B $str = 'D>A B<C Tom & Jerry he said "this's a test "'; echo $str; echo '
'
; /*(b)在源代码中用转义字符,在PHP中当单引号和 * 双引号冲突时用转义字符 */ echo '链接
'
; echo '
'
; echo '链接
'
; echo '
'
; echo "链接
"
; ------------------------------------------------------------------------------- header('Content-Type:text/html;charset=utf-8'); $str = 'abcdefg'; // (a)编号从零开始,{} 还可以用[]替代 // 获得 一个字母 c;(查) echo $str{2}; echo '
'
; // 获得 一个字母 f;(查) echo $str[5]; echo '
'
; //将 字母d 改为 t (改) $str{3} = 'twz'; echo $str; echo '
'
; // 将字母a 删除(改变形) $str{0} =''; var_dump($str); echo '
'
; // 在$str 最后添加一个字母 z(添加) $str{7} ='zabc'; echo $str;//bctefgz echo '
'
; // (b)当编号大于字符长度,用一个空格填补 $str{20} ='w'; var_dump($str);//string(21) "bctefgz w" ------------------------------------------------------------------------------- header('Content-Type:text/html;charset=utf-8'); // 数组(Array) //空数组(没成员值的数组) $arr = array(); var_dump($arr); echo '
'
; // 有值的数组 $arr = array('a','b','c'); var_dump($arr); echo '
'
; print_r($arr); echo '
'
; // echo可以输出数组中的某一值 b echo $arr[1]; echo '
'
; // 对象(Object) $obj = new stdClass(); var_dump($obj);//object(stdClass)#1 (0) { } echo '
'
; // 资源类型(Resource) $handle = fopen('02_string.php','r'); var_dump($handle);//resource(3) of type (stream) echo '
'
; //a.声明变量并且赋NULL或null $null = NULL; var_dump($null); echo '
'
; //b.声明变量但未赋值 $null2; var_dump($null2); echo '
'
; //c.unset()删除变量中的值 $var ='hello'; var_dump($var);//string(5) "hello" unset($var); var_dump($var);//NULL ------------------------------------------------------------------------------- header('Content-Type:text/html;charset=utf-8'); // 数组(Array) //空数组(没成员值的数组) $arr = array(); var_dump($arr); echo '
'
; // 有值的数组 $arr = array('a','b','c'); var_dump($arr); echo '
'
; print_r($arr); echo '
'
; // echo可以输出数组中的某一值 b echo $arr[1]; echo '
'
; // 对象(Object) $obj = new stdClass(); var_dump($obj);//object(stdClass)#1 (0) { } echo '
'
; // 资源类型(Resource) $handle = fopen('02_string.php','r'); var_dump($handle);//resource(3) of type (stream) echo '
'
; //a.声明变量并且赋NULL或null $null = NULL; var_dump($null); echo '
'
; //b.声明变量但未赋值 $null2; var_dump($null2); echo '
'
; //c.unset()删除变量中的值 $var ='hello'; var_dump($var);//string(5) "hello" unset($var); var_dump($var);//NULL ------------------------------------------------------------------------------- header('Content-Type:text/html;charset=utf-8'); $var = 12; echo $var +5.5;//17.5 echo '
'
; echo $var +'5.5';//17.5 echo '
'
; echo $var +'abc5.5';//12 echo '
'
; echo $var +'5.5abc';//17.5 echo '
'
; ------------------------------------------------------------------------------- header('Content-Type:text/html;charset=utf-8'); /*其它类型转为整型和浮点型 *a.合法的数字字符串,除了 . e E外并且 没超过整型的最大范围转为整型,否则 转为浮点型 用加法举例 */ echo 8 + '9'; //17 echo '
'
; echo 8 + '9.7'; //17.7 echo '
'
; echo 8 + '2e2';//208 echo '
'
; /* b.非合法的数字字符串,如果以数值开头转该 数值,如果以字母开头转为0 */ echo 8 + '1abc'; //8+1=9 echo '
'
; echo 8 + 'hello9';//8+0=8 echo '
'
; echo 8 + '4.8.9.3.4';//8+4.8=12.8 echo '
'
; echo 8 + '1e3abc';//1008 echo '
'
; echo 8 + 'e3';// 8+0=8 echo '
'
; /* c.布尔类型,true 转为1,false 转为0 d.null 转为 0 e.空字符串 转为 0 */ echo '
'
; echo 8 + true; // 9 echo '
'
; echo 8 + false; // 8 echo '
'
; echo 8 + 'true';// 8+0=8 echo '
'
; echo 8 + null;//8 echo '
'
; echo 8 + '';//8 echo '
'
; echo '
'
; echo 13.7 + '2true' +true +null; // 13.7 + 2 + 1 +0 =16.7 echo '
'
; echo 13.7 + '-2e1' + 'true9' + 'null5'; // 13.7 -20 + 0+ 0 =-6.3 echo '
'
; echo 13.7 + '6false' + '' +'8.6.5.4' + false; // 13.7 +6 +0 +8.6+0 =28.3 ------------------------------------------------------------------------------- header('Content-Type:text/html;charset=utf-8'); /*其它类型转为字符型 * 用 echo输出 举例,在输出之前转为字符串 * a.整型和浮点型转为数值本身 */ echo 28; // '28' echo '
'
; echo 4.78; // '4.78' echo '
'
; /*b.布尔类型转为字符型 true 转为'1', * false转为空字符串 */ $married = true; echo $married; // '1' echo '
'
; $married = false; echo $married; //空字符串 echo '
'
; // c.null转为字符型 空字符串 echo 'A',null,'B'; //AB echo '
'
; echo 'A','null','B';//AnullB echo '
'
; echo 'A',true,'B';//A1B echo '
'
; echo 'A','true','B';//AtrueB echo '
'
; echo 'A',2e3,'B';//A2000B echo '
'
; echo 'A','2e3','B';//A2e3B echo '
'
; echo 'A','7true','B';//A7trueB echo '
'
; echo 'A','null7','B';//Anull7B echo '
'
; echo '
'
; //d.数组转为字符型 Array字符串 $arr = array('a','b','c'); echo $arr;//echo 只能是一个一个输出,不能够打印整个的数组出来 echo '
'
; //e.资源转为字符型 Resource id #数字 字符串 $handle = fopen('02_string.php','r'); echo $handle; ------------------------------------------------------------------------------- header('Content-Type:text/html;charset=utf-8'); // 强制转换 --临时转换 /*整型 (integer)$var|(int)$var 浮点型 (float)$var|(double)$var|(real)$var 布尔型 (boolean)$var|(bool)$var 字符型(string)$var 数组 (array)$var 对象(object)$var NULL (unset)$var * */ $int = 20; $float = 16.78; $bool = true; $str = 'hello'; // 将$bool 转为 整型 var_dump((int)$bool); echo '
'
; var_dump((integer)$bool); echo '
'
; var_dump($bool);//变量本身没变化 echo '
'
; // 将 $str转为浮点型 var_dump((float)$str); echo '
'
; var_dump((double)$str); echo '
'
; var_dump((real)$str); echo '
'
; var_dump($str);//变量本身没变化 echo '
'
; var_dump((int)$float);//向下取整,16 echo '
'
; var_dump((float)$int);//20 echo '
'
; /*b.类型转换函数 整型intval() 浮点型 floatval()|doubleval() 布尔型 boolval() -- PHP5.5以上 字符型 strval() */ var_dump(intval($float)); echo '
'
; var_dump(floatval($bool)); echo '
'
; var_dump(doubleval($bool)); echo '
'
; var_dump(strval($int)); echo '
'
; var_dump($int);//变量本身没变化 ------------------------------------------------------------------------------- header('Content-Type:text/html;charset=utf-8'); // 强制转换-永久转换 /*settype: 设置变量的类型 bool settype ( mixed &$var , string $type ) 成功返回true 失败返回false */ $int = 20; $float = 16.78; $bool = true; $str = 'hello'; // 将 $bool 永久转换为 整型 settype($bool,'int'); var_dump($bool); // 变量本身发生变化 echo '
'
; settype($float,'string'); var_dump($float); ------------------------------------------------------------------------------- header('Content-Type:text/html;charset=utf-8'); //要求双引号输出形如结果 :aliceabc $userName567 = 'alice'; echo "{$userName567}abc"; echo '
'
; // (1)其它类型转为整型和浮点型 echo 7.45 + 'true' +null +'3false' +'e9'; // 7.45 +0 +0 + 3 +0;=10.45 echo '
'
; echo 8.9 + '-1e1' +'7null' +'' +'-5.7.8.8'; // 8.9 -10 +7+0 -5.7=0.2 echo '
'
; //(2)其它类型转为字符型 echo '#',1e2,true,'#'; // #1001# echo '
'
; echo '#','1e2','true','#'; //#1e2true# echo '
'
; //(3)其它类型转为布尔型 if('0false'){//true echo 'ok'; }else{ echo 'error'; } if('true5'){//true echo 'ok'; }else{ echo 'error'; } ------------------------------------------------------------------------------- header('Content-Type:text/html;charset=utf-8'); $int = 20; $bool = true; $float = 56.7; $str1 = 'abc'; $str2 = '12.5';//合法的数值字符串 $str3 = '6.7.8.8'; $arr = array('a','b'); var_dump(is_integer($int));//true echo '
'
; var_dump(is_int($int));//true echo '
'
; var_dump(is_long($float));//false echo '
'
; //(9)is_numeric //描述: 检测变量是否是数值(整数,浮点,合法的数值字符串) var_dump(is_numeric($int));//true echo '
'
; var_dump(is_numeric($float));//true echo '
'
; var_dump(is_numeric($str1));//false echo '
'
; var_dump(is_numeric($str2));//true echo '
'
; echo '
'
; var_dump(is_numeric($str3));//false echo '
'
; //(10)is_scalar //描述: 检测变量是否是标量(整数,浮点,布尔,字符串) var_dump(is_scalar($int));//true echo '
'
; var_dump(is_scalar($str1));//true echo '
'
; var_dump(is_scalar($arr));//false echo '
'
; ------------------------------------------------------------------------------- header('Content-Type:text/html;charset=utf-8'); //正号(+) 负号(-) + - * / echo +5; echo '
'
; echo -5; echo '
'
; echo 5 + 8; echo '
'
; echo 5 - 8; echo '
'
; echo 5 + 8; echo '
'
; echo 8 / 5; echo '
'
; // % 取余数 echo 8 % 5; // 被除数%除数 = 余数 echo '
'
; echo 11 % 20; //11 echo '
'
; // a.算术运算符求的是整数余数,向下取整 echo 9.9 % 4.5; // 9 % 4 =1 echo '
'
; // b.取余数符号运算与被除数一致 echo -9.9 % 4.5; // -1 echo '
'
; echo -9.9 % -4.5; // -1 echo '
'
; echo 9.9 % -4.5; // 1 echo '
'
; //c.fmod 实现求浮点数的余数 echo fmod(9.9,4.5); // 9.9%4.5 =0.9 echo '
'
; echo fmod(-9.9,4.5); // -0.9 echo '
'
; echo fmod(-9.9,-4.5); // -0.9 echo '
'
; echo fmod(9.9,-4.5); // 0.9 echo '
'
; echo 8.5 % 3.5; // 8 % 3 =2 echo '
'
; echo -8.5 % 3.5; // -2 echo '
'
; echo -8.5 % -3.5; // -2 echo '
'
; echo 8.5 % -3.5; //2 echo '
'
; echo 33 % 50; // 33 echo '
'
; echo 15 % 6; // 3 echo '
'
; ------------------------------------------------------------------------------- header('Content-Type:text/html;charset=utf-8'); /*b. 前缀形式:变量先自身加1或减1,后执行语句 后缀形式:先执行语句,变量后自身加1或减1 */ $a = 5; $b = 9; echo ++$a; //6 echo '
'
; echo $b++; //9 echo '
'
; echo $b; //10 echo '
'
; $a = 1; $b = 2; $a++; $c = $b++; // 先将当前$b值赋值给$c,然后自增 $b++; echo $a,$b,$c.'
'
;//2,4,2 $x = 3; $y = 4; $x--; $y --; $z = $y--; // 当前 $y=3值赋值给$c,然后自减 $x--; $y--; echo $x,$y,$z;//1,1,3 echo '
'
; // (b)布尔值是否支持自增自减--不支持自增自减 $bool = false; echo '$bool'.++$bool;// 0 不支持自增,false,打印出来直接是空白的 echo '
'
; $bool = true; echo --$bool;// 1 不支持自减 echo '
'
; // (c)null是否支持自增自减--支持自增不支持自减 $null = NULL; echo ++$null;// 1支持自增 echo '
'
; echo ++$null; $null = NULL; echo '$null'.$null;//null打印出来也是空白的 echo '
'
; echo --$null; //空字符串 不支持自减 echo '
'
; // (d)字符型支持自增不支持自减 /* ASCII码 * ord:返回字符的ASCII码 值 * ord('c') --> 99 * chr:返回ASCII码的字符 * chr(100) -->d */ $var = 'c'; echo ++$var; // d 支持自增 echo '
'
; $var = 'c'; echo --$var;//c 不支持自减 $var = 'z'; echo '
'
; echo ++$var; //aa $var = 'Z'; echo '
'
; echo ++$var; //AA $var = '9z'; echo '
'
; echo ++$var; //10a $var = 'z9'; echo '
'
; echo ++$var; //aa0 echo '
'
; $a = 5; $b = true;//不支持自增自减 $c = null;//支持自增不支持自减 $a++; $b++; $c++; $z = $a +$b +$c++; // 6+true+1=8 $b++; echo $a,$b,$c,$z;//6,true=1,2,8,6 1 2 8 echo '
'
; $x = 7; $y = true;//不支持自增自减 $z = '9a';//支持自增不支持自减 $x++; $y++; $z++; $k = $x +$y +$z++;// 8+true+'9b'=18 $x++; $z--; echo $x,$y,$z,$k;//9,true=1,9c,18 echo '
'
; $a = 12; $b = true;// 布尔值不支持自增自减 $c = '7z';// 字符串支持自增不支持自减 $d = null;// null支持自增不支持自减 $a--; $b--; $c--; $d--; $e = $a +$b +$c +$d++;// 11+true+'7z'+null $d++;//2 $d--;//1 echo $a,$b,$c,$d,$e;//11,true=1,7z,1,19 ------------------------------------------------------------------------------- header('Content-Type:text/html;charset=utf-8'); $a = 'hello'; $b ='world'; // 输出 形如 : hello - world echo $a,'-',$b; // 测试输出 echo '
'
; // 字符(连接)运算符:(符号: .) // 将字符串结果赋给变量 $link,一个整体 $link = $a.'-'.$b; echo $link; echo '
'
; // 输出形如 one|two|three 字符串 // 将字符串结果赋给变量 $link输出 $a ='one'; $b='two'; $c='three'; $link = $a.'|'.$b.'|'.$c; echo $link; ------------------------------------------------------------------------------- header('Content-Type:text/html;charset=utf-8'); //赋值运算符: = $var = 15; //赋值运算符右结合(从右往左结合) echo $var; echo '
'
; echo 8 + 7; // 左结合(从左往右结合) echo '
'
; //+= -= *= /= %= $var = 8; $var += 5;//+=效率高 ;$var = $var +5; echo $var; echo '
'
; $var = 8; $var -= 5;//-=效率高 ;$var = $var -5; echo $var; echo '
'
; $var = 8; $var *= 5;//*=效率高 ;$var = $var *5; echo $var; echo '
'
; $var = 8; $var /= 5;// /=效率高 ;$var = $var /5; echo $var; echo '
'
; $var = 8; $var %= 5;//%=效率高 ;$var = $var % 5; echo $var; echo '
'
; $str ='
  • one
  • two
  • three
'
; echo $str; // .= 字符串累连接 $a = 'blue'; $b ='red'; $c = 'green'; $link ='';//初始值 $link .='
    '; // $link = $link.'
      '; $link.='
    • '.$a.'
    • '
      ; $link.='
    • '.$b.'
    • '
      ; $link.='
    • '.$c.'
    • '
      ; $link.='
    '
    ; echo $link; echo '
    '
    ; /* 用 .= 输出 * 3行 3列的表 * 内容 : $var ='xxx'; */ $var = 'xxx'; $link =''; $link .=''; $link .=''; $link .=''; $link .=''; $link .=''; $link .=''; $link .=''; $link .=''; $link .=''; $link .=''; $link .=''; $link .=''; $link .=''; $link .=''; $link .=''; $link .=''; $link .='
    '.$var.''.$var.''.$var.'
    '.$var.''.$var.''.$var.'
    '.$var.''.$var.''.$var.'
    '
    ; echo $link; ------------------------------------------------------------------------------- header('Content-Type:text/html;charset=utf-8'); /*比较运算符: > >= < <= ==(等于) != <>(不等于) ===(全等于) !==(不全等于) */ var_dump( 'a' >'a', //false 1>1 false 'a' >='a', // true 'a' < 'a', //false 'a' <='a', //true 'a' =='a', //true 只有值等就可以 'a' !='a',//false 'a' <>'a',//false 'a'==='a',//true :值和类型都等 'a'!=='a' // false: !==值和类型都等为false // !==为true情况: // 1.值等类型不等,2.值不等类型等,3值和类型都不等 ); echo '
    '
    ; /*(a)字符串或null 跟字符串的比较 null 转为空字符串,按数值比较和单词 比较,如果是数值和字母比较按ASCII 码比较*/ var_dump( '80' >'33', //true 'f' >'b', // true 'tf'>'td', //true 按位比较 'ab'>'99b', //true a >9 的ASCII码 '30'>'n',// false 3 >n 的ASCII码 '-60' >'30',//false -60 >30 'true'>'false',//true t>f '9null'>'null',//false 9 null =='', //true 值等 null ==='', //false 值等类型不等 null !=='', //true !==值等类型不等 'b' >'', //true 1>0 9 >'' // true 1>0 ); echo '
    '
    ; /*(b)布尔值或null跟其他类型的比较按布尔值比较 true > false * */ var_dump( true > 6, //false true>true true > '0',//true true >false true >'0.0',//false true>true true >0.00, //true true >false true >'null', //false true >true true >null, //true true>false true >'', //true true>false true >'0false',//false true>true false===false, //true false!==false, //fasle 0 ==false, //true 值等就可以 0 ===false, //false 值等类型不等 0 !=false, //false 0!==false, //true 1 !=false, //true 1!==false //true ); echo '
    '
    ; // (c)数值或字符串跟数值按数值比较 var_dump( 30 > '45ab', //false 30>45 17 > 'true9', //true 17>0 1 >'4.5.6.7', //false 1>4.5 1e2 >'e3', //true 100>0 4.5 >'2e1', //false 4.5>20 20 >'17.5' //true 20>17.5 ); if('0false'){//这个是真的,只有在进行计算的时候才会转成数字相加减 echo '0false是真的'; echo '
    '
    ; echo '0false'; }else{ echo '0false是假的'; } ------------------------------------------------------------------------------- header('Content-Type:text/html;charset=utf-8'); /*e.===(全等于) 和!==(不全等于)严格比较的使用 原理:PHP是弱类型语言 ,根据程序运行环境 自动转换,比如 0,0.0 '0'"0"会自动转换为 false,为了避免自动转换产生的错误,要有 ===(全等于) 和!==(不全等于)解决 */ /* strpos:查找子字符串在字符串中首次出现的编号位置 * 格式:mixed strpos ( string $haystack * , mixed $needle [, int $offset = 0 ] ) * 成功返回编号位置,失败返回 false * 编号从0开始 */ $var ='abcdef'; echo strpos($var,'a');//0 echo '
    '
    ; echo strpos($var,'e');//4 echo '
    '
    ; echo strpos($var,'z');//false echo '
    '
    ; $str ='hellowrold'; // 在$str 中查找h 如果存在输出 ok,否则输出error //===(全等于) 和!==(不全等于)严格比较 //将 0和false区分开 if(0!==false){//产生错误: 0自动转为false echo 'ok'; // false!==false --fasle }else{ // 0!==false --true echo 'error'; // 2!==fasle --true } echo '
    '
    ; if(strpos($str,'h')===false){//产生错误: 0自动转为false echo 'error'; // false===false --true }else{ // 0===false --false echo 'ok'; // 2===fasle --false }

你可能感兴趣的:(PHP)