Table of Contents
1 理念
- 一个网站就是一个文件夹
- 一个网页就是一个文件
2 一些概念
- url 统一资源定位器
- 网址:协议:域名[端口号][路径][文件名]
3 变量
- 以 $ 开始
- 紧接着必须是数字或字母
- 之后的还可以是数字
- 不能是关键字
- 尽量见名知意
- 推荐小驼峰
4 debug 辅助函数
- 判断真假:isset()
- echo true/false:1/0,特殊值:null,echo 对应的变量(值为null)没有输出
- 输出变量完整信息:var_dump()
- 销毁变量:unset()
- 拼接输出:echo ‘<h1>‘,date(‘Y-m-d H:i:s‘),‘</h1>‘;
5 操作变量
- 赋值
- 取值
- 判断是否存在:isset($x);
- 销毁:unset($x);
6 引用
类似 C++ 的引用,可以看成是别名(数据中的内存是同一地址)
$a = 1000; $b = &$a; $a = 100;
7 预定义变量
7.1 获取请求的参数
- $_GET get 请求
- $_POST post 请求
- $_REQUEST (不分是 get 还是 post 请求)
<?php $l = $r = $result = ‘‘; if (isset($_REQUEST[‘l‘]) && $r = $_REQUEST[‘r‘]) { $l = $_REQUEST[‘l‘]; $r = $_REQUEST[‘r‘]; $result = $l + $r; } ?> <!--同时有 post get 数据--> <form action="calc2.php?name=elem&age=12" method="post"> <div> <input type="text" name="l" value="<?php echo $l; ?>"/> + <input type="text" name="r" value="<?php echo $l; ?>"/> <input type=‘submit‘ value="计算"> <?php echo $result ?> </div> </form>
7.2 $_SERVER
仅列出一些简单的,剩下需要查手册
echo ‘<p>php file: ‘, $_SERVER[‘PHP_SELF‘]; echo ‘<p>domain name: ‘, $_SERVER[‘SERVER_NAME‘]; echo ‘<p>server ip: ‘, $_SERVER[‘REMOTE_ADDR‘]; echo ‘<p>document root path: ‘, $_SERVER[‘DOCUMENT_ROOT‘]; echo ‘<p>script name: ‘, $_SERVER[‘SCRIPT_NAME‘]; echo ‘<p>client ip: ‘, $_SERVER[‘REMOTE_ADDR‘];
8 可变变量
使用变量名找变量
$a = 1; $b = ‘a‘; $c = ‘b‘; //$$$c; //$$b; //$a echo $$$c;
9 常量
9.1 const
定义时只能使用字面量和简单计算的表达式
const AGE = 100; echo ‘len: ‘, LEN * 2 - 71; echo ‘<br/>age: ‘, AGE * 2 - 33;
9.2 define
定义时值可以是复杂的表达式
define(‘LEN‘, 100); echo ‘len: ‘, LEN * 2 - 71; echo ‘<br/>age: ‘, AGE * 2 - 33; //避免冲突 $varName = ‘AGE‘; if(!defined($varName)){ define($varName, 11); } echo ‘<br/>const value ‘, $varName, ‘ : ‘,constant($varName);
9.3 预定义常量
列了一些,其他查手册
echo ‘<br/>‘, PHP_VERSION; echo ‘<br/>‘, PHP_OS; echo ‘<br/>‘, PHP_INT_MAX; echo ‘<br/>‘, M_PI;
9.4 魔术常量
列了一些,其他查手册
echo ‘<br/>‘, __DIR__; echo ‘<br/>‘, __FILE__; echo ‘<br/>‘, __LINE__; //echo ‘<br/>‘, __FUNCTION__;
10 进制
使用内置的函数
//进制转换 $a = 0x111; $c = 111; $b = 0111; $d = 0b111; echo ‘<br/> 0x111: ‘ . $a; echo ‘<br/> 111: ‘ . $b; echo ‘<br/> 0111: ‘ . $c; echo ‘<br/> 0b111: ‘ . $d; //10进制转其他 $v = 100; echo ‘<br/>100->16: ‘, ‘0x‘, dechex($v); echo ‘<br/>100->8: ‘, ‘0‘, decoct($v); echo ‘<br/>100->2: ‘, ‘0b‘, decbin($v); echo ‘<br/>011: ‘,octdec(‘011‘);
11 浮点数
浮点数相等操作不可靠,不要随便进行比较(一般转整数比较)
echo ‘<br/>1.6: ‘, 1.6; echo ‘<br/>1.23e3: ‘, 1.23e3;
12 布尔值
- true
- false
13 字符串
- 单引号不会解析
- 双引号中会解析变量($x)
- 双引号中变量转义后不会解析,\$x 只会生效一次,不解析的都需要转义
$s = ‘hello‘; //效果相同 echo "<br/>$s"; echo "<br/>".$s; echo ‘<br/>‘.$s; //效果相同 echo "<br/>\$s: $s"; echo ‘<br/>$s: ‘.$s; echo ‘<br/>$s: ‘,$s;