一、常量及数据类型的使用及函数
1.数据类型之间的相互转换
强制转换: setType(变量, 类型); //类型:int , interger, float, double, real, bool, boolean, string, array, object.
1. setType将会改变变量的原类型。 查看变量类型: var_dump();
2. 使用括号运算符"(类型)",不会改变原变量的类型,如 $a = (int)"12abc" ;
3. 或使用 intval(变量或值) floatval(变量或值) stringval(变量或值)等做强制转换。
1会改变原变量的值,2、3不会。注意强转时数据类型的范围问题
自动转换: 最常用的方式,变量会根据运行环境自动转换
//例子:该例子说明变量根据环境自动转换 $a = 10; $b = "100abc" $c = true; $d = 12.34; $sum = $a+$c+$b+$d; //尝试所有组合,看看结果是怎样。
2. 常用函数:
与变量和类型有关的常用函数:
isset(); //判断变量是否被定义 null表示空,返回false empty(); //判断一个变量是否为空,""、null unset(); setType(); getType(); //得到类型 /*变量类型测试函数*/ is_bool() ; is_int(); //类似这个格式的 /*打印数组*/ $a = array("one","two",1,2,3); print_r($a);
3. 常量的声明与使用
1.常量是一个简单值的标识符
2.常量定义后不能再改变他的值,不能使用unset()取消
3.常量可以不用理会变量范围的规则而在任何地方都可以定义和访问。(全局变量在局部函数中只用要加”global $变量名“声明 )
4.常量声明使用define("常量名",值);声明时必须赋值 (无法改变其值)
5.defined("常量名")
6.常量的值只能用标量类型(int,float,bool,string)
7.常量名习惯用大写
预定义常量和魔术常量
1. M_PI 圆周率
2. _FILE_ (魔术常量,在不同情况下不同值)
二、运算符及优先级、流程控制语句
1.算术运算符: 与C语言类似。
2.字符串运算符: '.' 用于字符串与其他变量或常量连接 , 不会把原字符串改变
$a = "php"; $b = 789; $c = "abc"; echo $a.123; //输出php123 echo $a."456" //输出php456 echo $a.$b; //输出php789 echo $a.$c; //输出phpabc echo $a; //输出php
3.赋值运算符: 与C语言类似
".=" 字符串连接并赋值
$a = "php"; echo $a; //输出php $a.=123; echo $a; //输出php123
4.位运算符:与C语言类似
5.逻辑运算符:与C语言类似
"==" 比较两边表达式的值是否相等
"!=" 和 "<>" : 不等号 , 比较两边表达式的值是否相等
"===" : 恒等于, 比较两边表达式的值和类型是否都一样
"!==" : 恒不等于,比较两边表达式的值和类型是否存在不一样
$a = "5"; $b = 5; echo $a == $b; //输出true echo $a != $b; //输出false echo $a === $b; //输出false echo $a !== $b; //输出true
6.运算符优先级
7.流程控制
与C语言类似。
二、循环结构、系统函数和自定义函数
1. 循环结构:与C语言类似
2. 函数格式定义:
(1) 返回值 函数名()
(2) 返回值 函数名(参数1,参数2)
(3) 函数名(参数1,参数2,返回值)
(4) 返回值 函数名 (.....)调用符 即可以在函数调用返回值后加上'.'或'[]' 取数组和成员属性等
如 String getA()[0] String getA().getB() 。
注意:string date(string format [, int time]) 括号内代表可选。
3. 自定义函数
格式:
function funcName($arg1, $arg2, $arg3....){ statement; return vals; }
注意:(1)function 开头
(2)funcName 只能以下划线'_'或字母开头
(3)funcName不能与关键字同名
函数可以传引用,与C类似,如: function funcName( $arg1, &$arg2); 调用: echo function($a,$b) 则$arg2就是$b的引用
三、文件和文件夹操作
filetype 返回是文件或文件夹 (file、dir、link)
stat() 返回指定文件的基本属性 (较占内存,需清缓存)
clearstatcache() 清缓存
is_executable() 判断是否可执行
is_dir() 判断是否存在或是文件夹
is_file() 判断是否是文件
scandir() 遍历文件夹/返回一个数组
fopen(filename,mode) //打开或创建一个文件
mode: 打开模式 r, r+, w, w+, a, a+
r:只读模式,将文件指针指向文件头
r+:读写模式,将文件指针指向文件头
w: 写入模式,将文件指针指向文件头,并清除内容,如果文件不存在则尝试创建
w+: 读写模式,将文件指针指向文件头,并清除内容,如果文件不存在则尝试创建
a: 写入模式,将文件指针指向文件末尾,如果文件不存在则尝试创建
a+:读写模式,将文件指针指向文件末尾,如果文件不存在则尝试创建
fwrite(资源, 内容) // 写入文件内容
fgets(资源, 长度) // 获取文件内容
fclose(资源) // 关闭一个打开的文件资源
unlink(文件) // 删除一个文件
资源:是调用文件函数系统返回的数据类型,类似系统的原语。
1 <?php 2 function bianli($fname,$dir,$times) 3 { 4 if($times == 3) 5 { 6 return; 7 } 8 if(is_dir($dir.$fname)) 9 { 10 echo $dir.$fname." is a dir "; 11 $p = scandir($dir.$fname); 12 foreach($p as $q) 13 { 14 // var_dump($q); 15 bianli($q,$dir.$fname,$times+1); 16 } 17 } 18 else 19 { 20 echo $dir.$fname." is not a dir,return "; 21 } 22 } 23 $dir = scandir("d:\"); 24 foreach($dir as $a) 25 { 26 // var_dump($a); 27 bianli($a,"d:\",0); 28 } 29 ?>