输出几个$_SERVER的信息
"网页路径",
"DOCUMENT_ROOT"=>"站点路径",
"SERVER_NAME"=>"服务器名",
"REMOTE_ADDR"=>"客户端IP",
"SERVER_ADDR"=>"服务器IP"
);
echo "";
foreach ($arr1 as $key => $value) {
echo "";
echo "$key ";
echo "\$_SERVER['$key'] ";
echo "" . $_SERVER["$key"] . " ";
// echo "" . $_SERVER[$key] . " ";
echo "" . $value . " ";
echo " ";
}
echo "
";
?>
计算器改进
// index.php
Document
进制
// 十进制
$n = 123
// 八进制
$n = 0123
// 十六进制
$n = 0x123
进制转换
dec:十进制,bin:二进制,oct:八进制,hex:十六进制
// 十进制转二进制
decbin()
// 手工转换:除2取余倒着写
$v1 = 123;
123/2 > 61 余:1
61/2 > 30 余:1
30/2 > 15 余:0
15/2 > 7 余:1
7/2 > 3 余:1
3/2 > 1 余:1
1/2 > 0 余:1
// 十进制转八进制
// 手工转换:除8取余倒着写
$v1 = 178;
178/8 22 余:2
22/8 2 余:6
2/8 0 余:2
// 十进制转十六进制
// 0 1 2 3 4 5 6 7 8 9 A B C D E F
// 手工转换:除16取余倒着写
178/16 11 余:2
11/16 0 余:11
// 二进制转十进制
1234 = 1x10 3+2x10 2+3x10 1+4x10 0
10001 = 1x10 4+0x10 3...+1x10 0
浮点数
1.23E3:1.23乘以10的3次方
字符串
// 单引号可以识别的两个转移符
\\
\'
// 双引号可以识别的转移字符有
\\
\"
\n
\r
\t
\$
数组
$value) {
echo $key;
echo $value."
";
}
?>
对象
";
echo "name:".$this -> name."
";
echo "age:".$this -> age;
}
}
$person1 = new Person();
$person1 -> name = "BBB";
$person1 -> age = 22;
$person1 -> introMe();
?>
资源类型
是指对外部数据(数据库,文件,图片等)的引用,非PHP代码生成的
类型转换
自动转换是弱类型语言最基本的一个特征
if(aaa) { ... }// 转换为Boolean类型
// 强制转换
$val = (int)7.8;
位运算符
位运算符都是针对整数的二进制形式进行的
按位与
1 & 1 => 1
1 & 0 => 0
0 & 1 => 0
0 & 0 => 0
按位或
1 | 1 => 1
1 | 0 => 1
0 | 1 => 1
0 | 0 => 0
按位非
~1 => 0
~0 => 1
异或
// 相同就是0,不同就是1
1 ^ 1 => 0
0 ^ 0 => 0
1 ^ 0 => 1
0 ^ 1 => 1
按位与(不分进制)
// A & B// A和B两个普通数字,其内部会按十进制进行计算,将每一对对应的二进制数字再进行&运算之后的结果
9
echo $r1;// 9
?>
按位或(不分进制)
23
echo $num;
?>
26
echo $val;
?>
按位左移运算
// 形式:A << n,A被整体左移n位,可以是普通数字,但按二进制去运算
右移运算
// A >> 2,右边移出去的不管了,左边空出来的补符号位
> 2;
// 0000 1001
// 0000 0010 > 二进制转10进制:1乘以2的一次方结果是2
echo $val;// 2
?>
按位非
// 将一个数字的二进制的每一位进行取反得到的结果
按位异或
// 将一个数字的二进制的每一位进行异或得到的结果
原码、反码、补码
原码:原来的二进制码,但在实际的计算机运行过程中,常常不用原码,所以就有了补码,反码。一个二进制数的第一位是符号位,0表示整数,1表示负数。
反码:正数的反码是其本身,负数的反码就是将原码的非符号部分,每一位进行取反。
补码:正数的补码是其本身,负数的补码就是将原码的非符号部分,每一位进行取反后整体加1。
7 -> 正数的反码:0000 0111
1000 0111 > -7 -> 负数的反码:1111 1000
0000 0111 > 7 -> 正数的补码不变
1000 0111 > -7 -> 负数的补码符号位不变,每一位取反后整体加1,1111 1000 -> 1111 1001
?>
1乘以2的3次方
$num = $v1 - $v2;// $v1 + (-$v2),计算机中减去一个数是加一个负数
// 5:0000 0101 > 5(即是原码有事补码)
// 3: 1000 0011 > 3(即是原码有事补码)
//-3: 1000 0011 > (原码)
//-3: 1111 1100 > (反码)
//
// 1111 1100
// + 1
// ---------
// 1111 1101 > (补码:负数的补码符号位不变,其余为取反后加1)
// ------------
// 0000 0101 > 5(补码)
// 1111 1101 > -3(补码)
// ---------
// 0000 0010 > 补码为2,则其原码也是2
?>
数据在CPU内部都是按补码进行运算
原码、反码、补码转换过程是系统内部的工作,且转换时符号位不变
用补码运算时(相减操作),符号位当做一个普通的二进制数参与运算
@
通常放在可能发生错误的前面抑制报错,例如连接数据库
@mysql_connect( ... ) or die("数据库连接失败")
sleep()
";
sleep(10);
echo date("Y-m-d H:i:s");
?>
文件加载
// 如果加载文件失败、重复则有不同的处理规则
include// 引用失败时,警告并继续
include_once
require// 引用失败时,警告并终止
require_once
include "文件路径"
include("文件路径")