PHP 各种语法总结

最近,想学一门脚本语言,
所以初学PHP,
作一些比较基础的语法总结

变量:$

//integer:
$i = 2468;      // 十进制
$i = -1357;     // 负数
$i = 0123;      // 0 八进制
$i = 0x456;     // 0x 十六进制

//float:
$f = 12.34;     // 1.2 X 10^3
$f = 1.2e3;

//string:
$s1 = "PHP string";
$v = "string";
$s2 = "PHP$v";   //输出PHPstring
$s3 = "PHP\$v"   //输出PHP$v

//array:
$arr = array('spring','summer','fall','winter');
echo $arr[0];

$sys = array(
"server"=>"Apache2",
"os"=>"ubuntu",
"db"=>"MySQL",
);
echo $sys["server"];
echo "
"; echo $sys["db"]; //可强转: $foo = 10; $foo = (boolean) $foo; //可变变量: $i = "abc"; $$i = "xyz"; //等价于:$abc = "xyz";

常量:define

define(PHP,"best language");

for循环:

define(PI,3.14);
for($r=1;$r<=10;$r++){
      $area = PI * $r *$r;
      if($area  > 100)
                break;
echo "r = $r , area = $area";
echo "
"; }

函数:function 区别于C/C++...

在C中,全局变量在函数中自动生效,除非被局部变量覆盖。
在PHP中,函数外的参数,无法在函数内访问,除非传参数地址引用。
或者使用global在函数中声明这是全局变量。
原因是作用域不一样。

function say_hello($some_name){
    echo "Hello ,".$some_name;
    echo "
"; } say_hello("MrLiu"); $a = 1; $b = 2; function sum1(&$a,&$b){ $b = $a + $b; } function sum2(){ global $a,$b; //global声明全局 去找全局变量$a,$b $b = $a + $b; } echo '$a + $b = '.$b;

数组:添加了索引,更快更方便找到数组元素。

//1
";
      echo "
"; } print_r($ms_office); //使用print_r遍历输出数组 $item_num = count($ms_office); echo '数组$ms_office的元素个数为:'.$item_num; ?> //2 'word', 'ec'=>'excel', 'ol'=>'outlook', 'ac'=>'access' ); foreach($ms_office as $key=>$value){ //使用foreach遍历数组$ms_office的值 echo $key.":".$value; //输出数组$ms_office中的值 echo "
"; echo "
"; } echo "
";
print_r($ms_office);        //有序输出数组$ms_office的结构
?>

数组的各种操作:

//数组分割:
array array_chunk(array $input_array, int $size, bool preserve);

//数组合并
array array_merge($array....)

//返回数组当前元素
current($array[..]);

//返回当前元素的下一个元素,指针移到下一个。
next($array[..]);

//返回当前元素的上一个元素,指针移到上一个。
prev($array[..]);

//返回数组的最后一个元素的值
end($array);

//清除索引,正向排序,字母由前到后,数字由小到大。
bool sort(array &$arr [,int $sort_flag]);

//清除索引,逆向排序
bool rsort(array &$arr [,int $sort_flag]);

//保持索引,正向排序
asort();

//保持索引,按索引名正向排序
ksort();

//随机排序,去键名
bool shuffle(array $array);

//按原顺序反向排序
array array_reverse(array $array [,bool $preserve_keys]);

//重置数组:函数内部指针指回数组第一个元素
mixed reset(array &$arr);

//用数组对变量赋值
$planet = array(
.....
)
list($no1,$no2,$no3) = $planet;

//快速创建数组:
echo '
';
$arr1 = range(5,10);
print_r($arr1);
$arr2 = range('a','f');
print_r($arr2);
$arr3 = range(2,10,2);
print_r($arr3);

//压入数组元素在末端
int array_push(array $array,mixed $var);

//弹出数组元素在末端
mixed array_pop(array $array);

//改变数组字符索引名的大小写
array array_change_key_case()

//数组之间的交集
array array_intersect(array $arr1,array $arr2....);
//加索引取交集
array array_intersect_assoc(array $arr1,array $arr2...);

//数组之间的差集
array array_diff(array $arr1,array $arr2...);
//加索引算差集
array array_diff_assoc(array $arr1,array $arr2...);

//交换数组索引和元素
array array_flip(array $arr);

//快速填充数组元素
array array_fill(int $start,int $num,mixed $value);

//统计数组元素出现次数
array array_count_values(array $arr);

//检查数组索引是否存在
bool array_key_exists(mixed $key,array $search);

//取得数组中的索引索引
array array_keys(array $arr [, mixed $search_value [, bool $strict]]);

//用回调函数处理数组
array array_map(callback_func,array $arr1...);

//判断某个值是否存在于数组
in_array();

//获取数组中当前单元的索引值
.key($array array);

字符串:

PHP对字符串处理的完美支持,是PHP的强大功能之一。

//分割字符串
array explode(string $separator, string $str [,int $limit]);
$arr = explode(',',$str);
$arr = explode(',',$str,2);

//合并字符串
string implode(string $bds,array $arr);

//比较两个字符串大小
int strcmp(string $str1,string $str2);

//字符串的替换
string str_replace(string $search,string);

//输出打印字符串
int print(string $str);

//格式化字符串
string sprint(string $format, mixed $args);

//获取字符串中的一个子串
string substr(string $str, int $start, int $length);

//删除字符串末尾的空白字符
string rtrim(string $str);
//删除字符串开始部分的空白字符
string ltrim(string $str);
//删除字符串两头的空白字符
string trim(string $str);

//获取字符串长度
int strlen(string $str);

//小写字母转大写字母
strtolower($str);
//大写字母转小写字母
strtoupper($str);

//将字符串中有关字符转换成HTML实体,即HTML字符编码。
string htmlentities(string $str);

//将HTML实体转换成相关的字符,和htmlentities逆运算
string html_entity_decode(string $str);

//多次生成一个字符串,重复生成
string str_repeat(string $input, int $num);

//将字符串分析到变量
void parse_str(string $str [, array $arr]);

//转换字符串到数组
array str_split(string $str [, int $split_length]);

//MD5散列加密
string md5(string $str);

//SHA1散列加密
string sha1(string $str);

PHP操作目录和文件

目录操作:

//打开目录
$dh = opendir(string $path);

//关闭目录
void closedir($dh);

//获取目录中下一个文件的文件名
string readdir($dh);

$dir = "D:\files";
if($dh = opendir($dir)){
      while(($file_name = readdir($dh)) != FALSE){
            echo "file name:".$file_name;
            echo "
"; echo "
"; } closedir($dh); } //列出某一目录下的所有文件 array scandir(string $directory); $dir = "D:\files"; $file_list1 = scandir($dir); $file_list2 = scandir($dir,1); //字母降序输出 echo "
";
print_r($file_list1);
print_r($file_list2);

//获取PHP当前工作目录
echo getcwd();

//改变PHP当前工作目录
chdir("dir_test");

文件操作:

//打开文件
$fp = fopen(string $filename , string $mode);
$fp = fopen($_SERVER['DOCUMENT_ROOT']."/../files/read.txt","w");
$fp = fopen("D:\\data\\log.bat");

//关闭文件
fclose($fp);

//读入文件的整个内容
int readfile(string $filename);

//将整个文件读入一个数组
array file(string $filename ,[int include_path]);

//整个文件内容读入一个字符串
string get_file_contents(string $filename);

//向文件写入内容
int fwrite($fp, string $content [, int $length]);
int fputs($fp, string $content [, int $length]);
int file_put_contents(string $filename, string $data);

//获取文件的相关信息
fileowner(string filename);
filesize(string filename);
filetype(string filename);

//判断文件性质的函数
is_dir($filename);          //是否是目录
is_file($filename);         //判断是否是普通文件
is_readable($filename);     //判断指定的文件是否可读
is_writeable($filename);    //判断指定的文件是否可写

//获取路径中的文件名
string basename(string $path);

//获取路径中的目录名
string dirname(string $path);

//判断文件或目录是否存在
bool file_exists(string $filename);

//用PHP建立目录
mkdir($dir_name);

//删除一个目录
rmdir($dir_name);

//复制文件
copy($source,$desc);

//删除由参数$file指定的文件
unlink($file);

//文件重命名
rename($oldname,$newname);

//PHP处理文件的锁定 限制操作,避免出现两个程序同时操作同一个文件出错。
bool flock($fp, int $operation [,int &wouldblock]);

flock($fp,LOCK_SH);        //读锁定
flock($fp,LOCK_EX);        //写锁定
flock($fp,LOCK_UN);        //释放锁定
flock($fp,LOCK_NB);        //防止锁定时阻塞

//PHP更改文件的属性
chmod("/home/log/del.sh",0777);    //将文件改为 所有人可读可写可执行
chown("/etc/password","root");      //将文件的所有者改为root

//获取文件时间属性
$last_access = fileatime("data.txt");      //获取文件的上次访问时间
$last_modify = filemtime("data.txt");      //获取文件的上次修改时间
$last_modify_inode = filectime("data.txt");      //获取文件上次inode被修改的时间

//通过HTTP协议打开文件
$file = fopen("http://localhost/ch06/server_data.txt","r");

//读取文件内容
string fgetss(resourse $handle);

//包含指定的文件到当前文件
include("1.php");      //遇到错误产生警告
require("1.php");      //遇到错误直接崩溃

用PHP处理日期和时间

//获取格式化的日期和时间
string date(string $format [, int timestamp]);
echo date('Y-m-d');

//将一个日期和时间转换成一个UNIX时间戳
int mktime(int $hour ,int $minute , int $second, int $month,int day,int $year);

//返回当前日期和时间的UNIX时间戳
$cur_timestamp = mktime();
mktime(0,0,0,1,1);      //返回当前年份1月1日的UNIX时间戳

//获取日期和时间
array getdate([int $timestamp]); 

//时间差
$national_day_year = floor($national_time/(365*24*60*60));    //相距的年数
$national_day_day = floor($national_time/(24*60*60));    //相距的天数

//检查时间的有效性
bool checkdate(int $month, int $day, int $year);

PHP对URL、HTTP的处理

//对URL进行编码
string urlencode(string $str);
//对URL进行解码
string urldecode(string $str);
//对URL地址进行分析
parse_url($url);
//生成一个HTTP头
header(string $str_header);
//获取HTTP头信息
print_r($_SERVER);
//生成cookie
bool setcookie(string name[, string value [,int expire [, string path [,string domain [,bool secure]]]]]);
//获取cookie
setcookie("testcookie","ilovephp");        //设置cookie
echo "cookie's value:".$_COOKIE['testcookie'];  //输出指定的cookie
//cookie的有效期
setcookie('cookie_one','i_am_cookie1',time()+60*60);  //设置cookie 1个小时后失效
setcookie('cookie_two','i_am_cookie2',time()+60*60*24);  //设置cookie 1天后失效
setcookie('cookie_three','i_am_cookie3',mktime(12,0,0,1,1,2018));//2018年1月1号失效
setcookie('mycookie','delicious',0);  //浏览器关闭后失效

//cookie的有效路径
secookie('mycookie','delicious',0,'/ck_path/');
//删除cookie
setcookie('mycookie','');

PHP中的数学运算

//返回参数$num的绝对值
abs($num);
//返回不小于$num的整数
ceil($num);
//返回不大于$num的整数
floor($num);
//返回参数$num的平方根
sqrt($num);
//对浮点数$num根据精度$precision四舍五入
round($num,$precision);

//将十进制转换成二进制
decbin($num);
//将十进制转换成十六进制
dechex($num);
//将十进制转换成八进制
decoct($num);
//将二进制转换成十进制
bindec($num);
//将十六进制转换成十进制
hexdec($num);
//将八进制转换成十进制
octdec($num);
//将$from所表示进制的数$num转换成以$to所表示的进制数后,返回转换后进制的数字字符串
base_convert($num,$from,$to);

//生成随机数
int mt_rand(int $min, int $max);

PHP获取系统信息

//获取环境变量
$root = getenv('DOCUMENT_ROOT');
//获取服务器端口
$port = getenv('SERVER_PORT');
//获取当前文件
$file = getenv('SCRIPT_NAME');
//获取当前用户
$ua = getenv('HTTP_USER_AGENT');
//获取请求方法
$method = getenv('REQUEST_METHOD');
//获取传输协议
$protocol = getenv('SERVER_PROTOCOL');

//添加一个环境变量并且为其赋值
bool putenv(string $env_setting);

$env_var = newenv;
putenv("MY_ENV = $env_var");

//返回一个数组,其中包含所有被编译和装载的模块
$exten_list = get_loaded_extensions();  //获取载入的扩展模块

//返回一个数组,包含了由参数$module指定模块的所有函数名称
$ext_func = get_extension_funcs($extension);

//获取PHP当前各类信息
echo phpinfo();

//获取当前PHP进程的进程号
echo "该进程ID号:".getmypid();

//获取当前PHP进程的所有者
echo "该程序所有者:".get_current_user();

你可能感兴趣的:(PHP 各种语法总结)