heredoc
1.定界符 heredoc就相当于双引号
2.定界符的开始要用双引号引起来
3.定界符的功能和双引号的功能完全一样,只不过在定界符中可以双引号
4.定界符的结尾必须顶行写
nowdoc
1.定界符 nowdoc相当于单引号
2.定界符的功能效果跟单引号是一样的,但是定界符中可以加单引号
二. 工具:
echo:输出变量,可以输出多个,中间使用逗号隔开
print:输出一个变量, (不经常使用)
var_dump:输出变量的详细信息(可以输出任何一种数据类型)
print_r:可以输出变量,经常来输出数组
gettype: 获取变量的数据类型
三. 判断类型常用的功能函数:
is_array() 判断变量的数据类型是否为数组
is_bool()
is_float()
is_int()
is_null()
is_numeric 判断变量的数据类型是否为整数或者字符串整数
is_object()
is_resource()
is_scalar()scalar:标量
is_string()is_scalar
总结: 判断功能函数is_xxx();
四. 类型转换(一般是标量类型的转换)
强制转换: intval() floatval() boolval() strval()
[注]强制类型转换注意事项,详情见ppt,将里边的每一项进行整理,归纳.测试,.下午全部交
自动转换: (要自动转换的类型)变量; (int) (float)
[注]自动类型转换细节,详情见ppt,将里边的每一项进行整理,归纳.测试,.下午全部交
设置类型转换:settype(变量,'转换的类型'):若成功返回TRUE,失败返回FALSE
五. 常量
概念: 在程序运行的人过程中,其值是不可以改变的量的就是常量
定义: define('常量名',常量值);
例子: define('PI',3.14);
好处:
1.为了跟变量进行区分,
2.修改时,一处改,处处都改,
3.提高了开发效率
常量注意事项:
常量名一般使用大写字母来定义.
常量值只能为标量。
常量名可以小写,但是通常大写
常量名需要加上引号。
在字符串中调用常量的时候,必须在引号外面
[总结] 变量或者常量需要跟字符串同时输出时,这是需要将变量或者常量写在字符串的外边,并且使用.连接
常量名建议只用字母和下划线
例子: DB_HOST DB_USER DB_PASSWORD
常量全局都有效
六. 超全局变量
$GLOBALS
$_SERVER
$_GET
$_POST
$_REQUEST
$_ENV
$_FILES
$_COOKIE
$_SESSION
全部记住 结果都是数组
七. 可变变量
$zicheng = 'gengzicheng';
$gengzicheng = 'yanxuxia';
echo $$zicheng;//yanxuxia
echo '<br />';
echo $gengzicheng;//yanxuxia
将变量的值当做另外一个变量的名字
八. 变量引用
$a = '123';
$b = &$a;
$a = '345';
var_dump($a,$b);
九. 运算符和表达式 (表达式的结果只有两种要么为真要么为假)
算数运算符: + - * / %(取余/求模) .
赋值运算符: += -= *= /= %= .=
例子: $a += $b 其实就是$a = $a + $b
自加自减运算: ++ --
变量放置的前边:++$a/--$a 执行顺序: 先加1/减1,再赋值
变量放置的后边: $a++/$a-- 执行顺序 : 先赋值,再加1/减1
关系运算符: < > <= >= != == !== ===
$a < $b
=: 赋值
==: 判断值是否相等
!= 判断值是否不相等
=== 判断值和值对应的类型都要相等
!== 判断值或者值对应的类型只要有一个不相等
逻辑运算符. && || and or xor !
3<$a<100
$a>3 && $a<100
逻辑与 && and
表达式1 表达式2 表达式1&&表达式2
真 真 真
真 假 假
假 真 假
假 假 假
总结:一假全假,全真为真
逻辑或|| or
表达式1 表达式2 表达式1||表达式2
真 真 真
真 假 真
假 真 真
假 假 假
总结:一真为真,全假为假
逻辑非!
0 1
表达式 !表达式
真 假
假 真
异或xor
表达式1 表达式2 表达式1xor表达式2
真 真 假
真 假 真
假 真 真
假 假 假
总结: 相同为假,不同为真
题: 变量要么大于3,要么小于0
$a <0 || $a > 3
按位运算符: & | ^ ~ << >>(了解)
1个0算一位或者1个1算一0位, 8位表示一个字节
0000 0000 0000 0010
0和1 0 1和0 0 1和1 1 0和0 0
按位与:
0000 0010 2
0000 1100 & 12
0000 0000
按位或:
0和1 1 1和0 1 1和1 1 0和0 0
0000 0010
0000 1100 |
0000 1110
按位取反
0000 0010
1111 1101 ~
按位异或 ^
0000 0010
0000 1100 ^
0000 1110
左移 <<
0000 0010 <<2
0000 1000
右移 >>
1111 1100 >>2
0011 1111
十. 短路概念
只针对于逻辑与(&&)和逻辑或(||)
表达式1&&表达式2 表达式1||表达式2
逻辑与: 只要判断表达式1的结果为假,然后并且&&,这时就不在往后判断,直接输出假
逻辑或: 只要,判断表达式1的结果为真,然后并且||,这时就不在往后判断,直接输出真
十一. 三元运算符 (三目运算符) 指的是三个表达式
$a > $b $a $b
格式: 表达式1 ? 表达式2 :
$a > $b ? $a : $b;
题: $a $b $c 那个值最大
($a > $b ? $a : $b) > $c ? ($a > $b ? $a : $b) : $c;
十二. 优先级问题
()
如果想先执行那个运算,就直接给该运算加()
下面的例子建议复制到编译器里学习!
例1:
/*
1.定界符 heredoc就相当于双引号
2.定界符的开始要用双引号引起来
3.定界符的功能和双引号的功能完全一样,只不过在定界符中可以双引号
4.定界符的结尾必须顶行写
*/
/* $here = <<<"ABCD"
今天早上起得很早, 所以我就吃了两个"包子".
ABCD;
echo $here; */
/*
1.定界符 nowdoc相当于单引号
2.定界符的功能效果跟单引号是一样的,但是定界符中可以加单引号
*/
$here = <<<'ABCD'
今天早上起得很早, 所以我就吃了两个'包子'.
ABCD;
echo $here;
例2
<?php
/*
定界符:
*/
$a = 123;
$here = <<<ABCD
今天早上吃了一个"包子",感觉'$a'自己变胖了。
ABCD;
echo $here.'<br />';
$where = <<<"ABCD"
今天比较差的死难者,分机构.
ABCD;
echo $where;
$bb = <<<CBD
BCDKJOTRzncfkdxb'bnj' 内"$a"需缴费等下吧;
CBD;
echo $bb;
例3.
/* $name = 123; */
$name = true;//boolean布尔类型
$zicheng= gettype($name);
var_dump($zicheng);//integer整型
例4
<?php
$cars=array("Volvo","BMW","Toyota");
$arrlength=count($cars);
for($x=0;$x<$arrlength;$x++)
{
echo $cars[$x];
echo "<br>";
}
?>
例5
<?php
//强制转换
/* $num = 3.14;
$zicheng = intval($num);
var_dump($zicheng); */
//自动转换
/* $num = '123'; */
/* var_dump($num);
$zicheng = (int)$num;
var_dump($zicheng); */
//settype
/* $num = '123';
$zicheng = settype($num,'int');
var_dump($num);
var_dump($zicheng); */
/* $name = null;
$zicheng = (int)$name;
var_dump($zicheng); */
$num = 0;
if ($num) {
echo '这是整型';
}
例6
<?php
define('PI',3.141);
echo PI.'这是圆周率<br />';
/*
__LINE__
__FILE__
__DIR__
PHP_OS
PHP_VERSION
*/
echo __LINE__;
echo '<br />';
echo __FILE__;
echo '<br />';
echo __DIR__;
echo '<br />';
echo PHP_OS ;
echo '<br />';
echo PHP_VERSION;
例7
<?php
$name = 'wangpeng';
var_dump($GLOBALS);
例8
<?php
$zicheng = 'gengzicheng';
$gengzicheng = 'yanxuxia';
echo $$zicheng;
echo '<br />';
echo $gengzicheng;
例9
<?php
/* $a = '123';
$b = &$a;
$a = '345';
var_dump($a,$b); */
$a = 'hello';
$b = &$a;
$a = 'world';
例10
<?php
$num = 10%3;
var_dump($num);
例11
<?php
$a = 10;
$b = 11;
/* $c = $a += $b; */
/* $c = $a + $b; */
/* $a = $a + $b; */
//简写
$a += $b;
var_dump($a);
例12
<?php
/* $a = 10;
$a++;//++值得就是给当前值+1
$a--;
var_dump($a); */
$a = 10;
++$a;
var_dump($a);
例13
<?php
/* $a = 99;
$b = 45;
if ($a !== $b) {
echo '条件成立';
} */
/* $a = 123;
$b = '345';
if ($a !== $b) {
echo '条件成立';
} */
//这是一个坑
$a = 123;
/*
如果这样写条件永远成立
*/
/* if ($a = 345) {
echo '条件成立';
} */
if (123 == $a) {
echo '条件成立';
}