PHP学习2
常量
1 //常量定义语法1: 2 //define("常量名", 常量值); 3 define("PI", 3.14); 4 define("SCHOOL", "sc"); 5 //定义形式2: 6 //const 常量名 = 常量值; 7 const CC1 = 1234; 8 const CC2 = 'abcd'; 9 10 //使用形式1:直接使用其名字 11 echo "<br />常量PI的值是:" . PI; //注意,不能写在引号中 12 echo "<br />常量SCHOOL为:" . SCHOOL; 13 $s1 = PI * 3 * 3; //求半径为3的圆面积 14 //使用形式2:使用函数constant()获得一个常量的值: 15 //形式: constant("常量名");//注意:常量名是一个字符串 16 $s2 = constant("PI") * 3 * 3; 17 echo "<br />s1= $s1, s2 = $s2"; 18 echo "<br />" . SCHOOL . constant("CC1") . constant("CC2"); 19 20 //取得常量值的灵活性语法: 21 $i = 1; 22 $c1 = "CC" . $i; 23 echo "<br />常量 $c1 的值为:" . constant($c1);//输出1234 24 25 26 if( defined("PI") ){ 27 echo "<br />常量PI已经存在"; //通常此时就可以去使用它! 28 } 29 else{ 30 echo "<br />常量PI不存在";//通常,判断不存在,是为了来定义它! 31 define("PI", 3.14); //然后去使用 32 } 33 $s3 = PI * 5 * 5; 34 echo "<br />面积为:$s3"; 35 36 if( defined("G") ){ 37 echo "<br />常量G已经存在"; //通常此时就可以去使用它! 38 } 39 else{ 40 echo "<br />常量G不存在";//通常,判断不存在,是为了来定义它! 41 define("G", 9.8); //然后去使用,G是”重力加速度" 42 } 43 $s4 = G * 6 ; //6为时间(秒),这里是计算得到速度 44 echo "<br />速度为:$s4"; 45 46 // 47 echo "<hr />"; 48 echo "v1的值为" . $v1; //注意,该变量v1未定义过 49 echo "C1的值为" . C1; //注意,该常量C1未定义过 50 51 //魔术常量: 52 echo "<br />" . __FILE__; 53 echo "<br />" . __DIR__; 54 echo "<br />" . __LINE__; 55 echo "<br />" . __LINE__; 56 echo "<br />" . __LINE__;
数据类型
总体划分
有8种数据类型:
基本类型(标量类型):
整数类型: int, integer
浮点数类型: float,double, real
字符串类型: string
布尔类型: bool, boolean 这种类型,只有2个数据:true,false
复合类型:
数组: array
对象: object
特殊类型
空类型: null 这种类型中,只有一个数据,那就是null
资源类型: resource
整数类型
整数类型的4种写法:
$n1 = 123; //10进制数字写法
$n2 = 0123; //8进制数字写法,实际n2中存储的数字比123小
$n3 = 0x123; //16进制数字写法,实际n3中存储的数字比123大
$n4 = 0b1010; //2进制数字写法
进制转换问题
首先记住这几个单词:
bin:2进制
oct:8进制
dec:10进制
hex:16进制
进制转换主要分2种情况:
1,10进制转换为其他3种进制:decbin(), decoct(), dechex();
2,其他3种进制,转换为10进制:
进制转换的系统函数——必须会用
进制转换主要分2种情况:
1,10进制转换为其他3中进制:
decbin(一个10进制数字): 结果返回的是该数字的2进制数字形式的字符串!!!
decoct(一个10进制数字): 结果返回的是该数字的8进制数字形式的字符串!!!
dechex(一个10进制数字): 结果返回的是该数字的16进制数字形式的字符串!!!
2,其他3种进制,转换为10进制:
bindec(一个2进制数字字符串): 结果返回的是该2进制数字字符串对应的10进制数字!!!
octdec(一个8进制数字字符串): 结果返回的是该8进制数字字符串对应的10进制数字!!!
hexdec(一个16进制数字字符串): 结果返回的是该16进制数字字符串对应的10进制数字!!!
对于输入的字符串中的字符,如果不是对应进制的数字,会被忽略。
类型转换
自动转换:
在任何运算中,如果需要某种类型的数据,而给出的数据不是该类型,通常都会发生自动转换:将该类型转换为目标需要的类型。
比如: octdec($x), bindec($x), hexdec($x); //这里就要求$x必须是字符串,如果不是,就会转换;
$v1 = 1 + “2”; //此时也发生了自动转换。
强制转换:
自动类型转换是由“运算符”或类似运算符的语句来决定的。
而:
强制类型转换,仅仅是一个简单的语法:
形式:(目标类型)数据;
含义: 将该数据转换为设定的目标类型;
通常的转换目标类型有:
(int), (float), (string), (bool), (array), (object)
上述强制类型转换,并不改变该变量的本身数据或类型。
对应,有一个语法是直接改变改变本的数据(及类型):
settype( $变量名, “目标类型”);
类型相关的函数
- var_dump():用于输出变量的“完整信息”,几乎只用于调试代码。
- getType($变量名):获取该变量的类型名字,返回的是一个表示该类型名字的字符串,比如:“string”,“bool”,“double”,“int”
- setType($变量名,“目标类型”):将该变量强制改变为目标类型;
- isset(), empty(), unset();。。。。省略!
- is_XX类型() 系列函数:判断某个数据是否为某种类型,有如下一些:
- is_int($x); 判断$x是否是一个整数类型;
- is_float($x);
- is_string($x);
- is_bool($x);
- is_array($x);
- is_object($x);
- is_null($x);
- is_numeric($x); 判断$x是否是一个数字!
- is_scalar($x); 判断$x是否是一个“标量类型”
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-cn"> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /> 5 <title>网页标题</title> 6 <meta name="keywords" content="关键字列表" /> 7 <meta name="description" content="网页描述" /> 8 <link rel="stylesheet" type="text/css" href="" /> 9 <style type="text/css"></style> 10 <script type="text/javascript"></script> 11 </head> 12 <body> 13 <?php 14 if(!empty($_POST)){ 15 echo "<p>post数据:<br />"; 16 print_r($_POST); 17 } 18 if(!empty($_GET)){ 19 echo "<p>get数据:<br />"; 20 print_r($_GET); 21 } 22 if(!empty($_REQUEST)){ 23 echo "<p>request数据:<br />"; 24 print_r($_REQUEST); 25 echo "<br />也可以这样写:"; 26 echo "<br />" . $_REQUEST['d1']; 27 echo "<br />" . $_REQUEST['d2']; 28 echo "<br />" . $_REQUEST['age']; 29 echo "<br />" . $_REQUEST['data1']; 30 echo "<br />" . $_REQUEST['data2']; 31 } 32 ?> 33 <form action="index.php?d1=5&d2=cctv&age=18" method="post"> 34 数据1:<input type="text" name="data1" /> 35 <br /> 36 数据2:<input type="text" name="data2" /> 37 <br /> 38 <input type="submit" value="提交" /> 39 </form> 40 </body> 41 </html>