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 "<br/>";
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 "<br/>";
}

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

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

function say_hello($some_name){
    echo "Hello ,".$some_name;
    echo "<br/>";
}
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
<?php
$ms_office = array(
'word',
'excel',
'outlook',
'access'
);

foreach($ms_office as $software){    //使用foreach遍历数组$ms_office的值
      echo $software;        //输出数组$ms_office中的值
      echo "<br/>";
      echo "<br/>";
}

print_r($ms_office);    //使用print_r遍历输出数组

$item_num = count($ms_office);
echo '数组$ms_office的元素个数为:'.$item_num;
?>

//2
<?php
$ms_office = array(
'wd'=>'word',
'ec'=>'excel',
'ol'=>'outlook',
'ac'=>'access'
);
foreach($ms_office as $key=>$value){    //使用foreach遍历数组$ms_office的值
      echo $key.":".$value;            //输出数组$ms_office中的值
      echo "<br/>";
      echo "<br/>";
}

echo "<pre>";
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 '<pre>';
$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 "<br/>";
            echo "<br/>";
      }
      closedir($dh);
}

//列出某一目录下的所有文件
array scandir(string $directory);

$dir = "D:\files";
$file_list1 = scandir($dir);
$file_list2 = scandir($dir,1);    //字母降序输出
echo "<pre>";
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();
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,324评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,356评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,328评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,147评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,160评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,115评论 1 296
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,025评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,867评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,307评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,528评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,688评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,409评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,001评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,657评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,811评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,685评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,573评论 2 353

推荐阅读更多精彩内容

  • 第5章 引用类型(返回首页) 本章内容 使用对象 创建并操作数组 理解基本的JavaScript类型 使用基本类型...
    大学一百阅读 3,233评论 0 4
  • 一、php可以做什么 php是一种可以在服务器端运行的编程语言,可以运行在Web服务器端。 php是一门后台编程语...
    空谷悠阅读 3,094评论 4 97
  • PHP 学习目录 ├─PHP视频教程 1 LAMP网站构建 │ ├─PHP教程 1.1.1 新版视频形式介绍│ ...
    曹渊说创业阅读 16,155评论 29 417
  • 我们本可以不相遇的。 你看,我们有那么多的差异,学院不同,性格各异,大家每天也背着各自的课本,走向不同的教室,学不...
    七点水阅读 275评论 0 0
  • 全职带了五年的孩子,按说也该是各中老手了,可是我这几天还是被老大磨的挫败感爆棚,内心非常的沮丧。 没有...
    叶之萱扬阅读 1,360评论 2 0