对PHP函数,字符串,数组,日期和时间,变量,运算符,类,面向对象的简单理解

一:PHP函数

<?php
/*
*@author wangjin
*@time 2020-4-12
*函数
*/
//函数的作用很大,一个比较复杂的问题通过分析可以被分成不同的模块,通过函数实现每一个模块的功能
//一般的按值参数,即传入变量值即可,变量可以没有先赋值
function demo($a)
{
    $a=100;
    echo $a."<br>";
}
$b=200;
demo($b);//输出100;
echo $b."<br>";//输出$b=200;使用常规参数传入值时,变量$b的值并无变化;

//2.如果在函数说明中,在参数中有&出现时说明这个参数是一个引用参数;变量在引用前必须赋值或初始化
function test(&$a)
{
    $a=100;
    echo $a."<br>";
}
$b=200;
test($b);
echo $b."<br>";//输出100;使用“&”引用参数传值时,变量$b的值随着在函数中修改$a的值而同时产生变化

/*3.默认参数:系统函数中有些函数参数是有默认值的,也叫可选参数或默认参数,当你选择不为可选参数赋值时,系统会自动用默认值;
    必须把默认参数放在最后面,因为调用时会从前往后赋值,当有参数没被赋值时,会报错;
*/
function moren($a=2,$b=3 )//变量这个参数设置了一个默认参数$sex="女"
{
    echo $a." ".$b;
}
moren( );//当我们不给$a$b赋值时,就会输出默认值
$c=9;$d=8;
moren($c,$d);//当我们给默认参数赋值时会覆盖默认值,此时$a=9,$b=8

//3.可变参数:当实际传入的参数比声明的参数少时叫默认参数,当实际传入参数比声明的参数多的时候这就叫做可变参数;
//    用func_get_args()函数来接收函数中所有实际传入参数的值,并可以做处理
function kebian()
{
    $arr=func_get_args();
    var_dump($arr);//以数组的形式接收和处理;var_dump可以返回变量的值和类型有返回值,而echo,print没有返回值
    $sum=0;
    for($i=0;$i<count($arr);$i++)//count函数读取数组长度
    {
        $sum+=$arr[$i];
    }
    echo $sum;//获取所有实际传入参数的值的和;
}
    kebian(1,2,3,4,5,6,7,8,9);
?>

二:数组

<?php
/*
*@author wangjin
*@time 2020-4-11
*@params:$arr->数组
*数组
*/
/*数组就是一个能储存多个变量的特殊变量
*数组分为数值数组,关联数组,多维数组(此处暂不介绍)
*数值数组,直接按照数组的基本原理给它赋值,下标从零开始,自动向后增一
*/
//普通输出数组元素的值--echo语句
$arr=array("111","222","333");
//可以使用count函数得到数组元素个数(长度)
$total=count($arr);
echo $arr[0].$arr[1].$arr[2];
//遍历数值数组(知道数组长度用for语句循环)
for($m=0;$m<$total;$m++){
    echo $arr[$m];
    echo "<br>";
}
//关联数组,关联数组其实本质和数值数组一样,只是它给我们访问数组元素的名称不一样,改成了自己想要的,而不是从零自动增加
//普通输出关联数组元素
$arra=array("WO"=>"12","TA"=>"15","NI"=>"18");
echo $arra['WO'].$arra['TA'].$arra['NI'];
echo "<br>";
//用foreach输出
foreach($arra as $n=>$n_value){
echo "mingcheng is ".$n." age is ".$n_value;
echo "<br>";
}
?>

数组常用函数
(1)可用于队列操作
array_push($arr, v a l u e 1 , . . . ) 将 一 个 或 多 个 单 元 压 入 数 组 的 末 尾 ( 入 栈 ) a r r a y p o p ( value1, ...)将一个或多个单元压入数组的末尾(入栈) array_pop( value1,...)arraypop(arr);弹出数组最后一个单元(出栈)
array_unshift($arr, v a l u e 1 , . . . ) ; 在 数 组 开 头 插 入 一 个 或 多 个 单 元 a r r a y s h i f t ( value1, ...);在数组开头插入一个或多个单元 array_shift( value1,...);arrayshift(arr);将数组开头的单元移出数组
(2)数组自定义操作
array_map() 返回数组,是为 array1 每个元素应用 callback函数之后的数组。 callback 函数形参的数量和传给 array_map() 数组数量,两者必须一样。
array_walk() 使用用户自定义函数对数组中的每个元素做回调处理,不会受到 array 内部数组指针的影响。array_walk() 会遍历整个数组而不管指针的位置。
array_reduce() 用回调函数迭代地将数组简化为单一的值
(3)多数组操作
array_merge($array1, a r r a y 2 , . . . ) 合 并 一 个 或 多 个 数 组 a r r a y d i f f ( array2, ...)合并一个或多个数组 array_diff( array2,...)arraydiff(array1, a r r a y 2 , . . . ) 计 算 数 组 的 差 集 ; 对 比 a r r a y i n t e r s e c t ( array2, ...) 计算数组的差集; 对比 array_intersect( array2,...)arrayintersect(array1, $array2, …)计算数组的交集
(4)其他
array_keys 返回数组中部分的或所有的键名
array_values 返回数组中所有的值
array_unique 移除数组中重复的值
array_multisort 对多个数组或多维数组进行排序
array_reverse 返回单元顺序相反的数组
array_slice 从数组中取出一段
array_search 在数组中搜索给定的值,如果成功则返回首个相应的键名
三:日期和时间
(1) year类型表示时间,date类型表示日期,time类型表示时间,datetime和timestamp表示日期和时间

<?php
/*
*@author wangjin
*@time 2020-4-11
*日期和时间
*/
//php通过date()函数对本地的日期和时间进行格式化
/*语法如下:
*date(string format,int timestamp)
*参数format指日期和时间输出的格式
*timestamp是可选的,用于指定的时间戳,一般没有给定时间戳就使用本地当前时间
*/
// 当前时间戳
$time_now = time();

// 指定日期 --> 2019-7-31 23:59:59 的时间戳 【86400 - 1 ==> 23:59:59 】
$time_out = strtotime(date("2019-7-31")) + 86400 - 1;
//var_dump($time_now);
//var_dump($time_out);
?>

(2)常用的日期和时间处理函数
checkdate 验证时间函数,判断时间是否有效,有效返回true,否则返回false
date_default_timezone_get 取得脚本日期时间函数所使用的默认时区
date_default_timezone_set 设定日期时间函数的默认时区
date 格式化一个本地时间/日期
getdate 获取日期/时间信息
gettimeofday 获取当前时间
localtime 获取本地时间
microtime 返回当前时间戳和微秒数
mktime 取得一个UNIX时间戳
strtotime 将任何英文文本的日期时间描述解析为UNIX时间戳
time 返回当前的UNIX时间戳
四:变量

<?php
/*
*@author wangjin
*@time 2020-4-12
*变量
*/
/*变量以 $ 符号开始,后面跟着变量的名称
*变量名只能包含字母数字字符以及下划线(A-z、0-9 和 _ )
*变量名不能包含空格
*变量名是区分大小写的($y 和 $Y 是两个不同的变量)
*/
//变量直接赋值
$name = 10;
echo $name."<br>";
//变量引用赋值
$a = 10;
$b = &$a;
$b = $b + 1;
echo $a;
echo "<br>";
echo $b;
//局部变量--在函数内部中定义的变量,它的作用域为函数定义范围内
function jubu(){
  $a = 10;
  $b = 20;
  $c = $a + $b;
  echo $c;
}
//要想在函数中直接使用全局变量可以通过 global关键字声明 或者通过php中自定义的$GLOBALS数组获取
function t()
{  
global $a,$b;
echo $a-$b;
}
//静态变量:通过static 定义一个静态变量, 如:

function test()
{
static $t;
$t++;
return $t;
}
for($i=0;$i<6;$i++)
{
echo test()."<br />";
}
//输出 1 2 3 4 5 
//即静态变量在第一次初始化后,该变量的值就一直存在内存中,不会随着函数而被注销。
?>

五:运算符
1、运算符分类
(1)按操作个数的不同
  一元运算符、二元运算符、三元运算符
(2)按功能的不同
  赋值运算符、算术运算符、比较运算符、逻辑运算符、按位运算符、字符串运算符、数组运算符、类型运算符
2、赋值运算符是二元运算符,左边的操作数必须是变量,右边是一个值或者表达式
如: $a = 4;
3、算术运算符

//算数运算符
	$a = 100;
	$b = 50;
	
	echo $a+$b;//加法,结果为150
	echo '<br>';

	echo $a-$b;//减法,结果为50
	echo '<br>';

	echo $a*$b;//乘法,结果为5000
	echo '<br>';
	
	echo $a/$b;//除法,结果为2
	echo '<br>';

	//前置自增自减运算符
	
	$var1 = ++$a;//先进行$a自加1,然后将结果赋值给$var1
	echo $var1;//结果为101
	echo '<br>';
	echo $a;//结果为101
	echo '<br>';

	$var2 = --$a;//先进行$a自减1,然后将结果赋值给$var2
	echo $var2;//结果为100
	echo '<br>';
	echo $a;//结果为100
	echo '<br>';

	//后置自增自减运算符
	
	$var3 = $a++;//先将$a赋值给$var3,然后$a自加1
	echo $var3;//结果为100
	echo '<br>';
	echo $a;//结果为101
	echo '<br>';

	$var4 = $a--;//先将$a赋值给$var4,然后$a自减1
	echo $var4;//结果为101
	echo '<br>';
	echo $a;//结果为100
	echo '<br>';

4、比较运算符

    $a = 10;
    $b = 5;
	$c = '5';
	$d = '3';
	var_dump($a<$b);//结果为bool(false)
	var_dump($a<=$b);//结果为bool(false)
	var_dump($a>$b);//结果为bool(true)
	var_dump($a>=$b);//结果为bool(true)
	var_dump($a==$b);//结果为bool(false)
	var_dump($b==$c);//结果为bool(true),==只判断数值是否相等
	var_dump($b===$c);//结果为bool(false),===判断数值和类型
	var_dump($d<$c);//结果为bool(true),会转成整型来比较

5、逻辑运算符
(1)与 &&
  两边的表达式都为真,结果为真;有一假,结果返回假

(2)或 ||
  两边的表达式都为假,结果为假;有一真,结果返回真

(3)非 !
  返回与表达式相反的结果

(4)and or
  和上述逻辑运算符功能相同

(5)逻辑异或 xor
  两边的表达式一真一假 ,结果返回真,反之返回假
6、三元运算符

<?php
/*
*@author wangjin
*@time 2020-4-12
*运算符
*/
/*三元运算符
*另一个条件运算符是"?:"(或三元)运算符 。
*语法格式
*(expr1) ? (expr2) : (expr3)
*对 expr1 求值为 TRUE 时的值为 expr2,在 expr1 求值为 FALSE 时的值为 expr3。
*/
$a = 4;
$a > 2 ? $b = 1:$b = 2; 
echo $b; 
?>

六、面向对象及类

<?php
/*面向对象的内容有:类,对象,成员变量,成员函数,继承,父类,子类,多态,重载,抽象性,构造函数,析构函数
*类-定义了一件事物的抽象特点。类的定义包含了数据的形式以及对数据的操作。对象是类的实例
*多态 − 多态性是指相同的函数或方法可作用于多种类型的对象上并获得不同的结果。不同的对象,收到同一消息可以产生不同的结果,这种现象称为多态性。
*重载 − 简单说,就是函数或者方法有同样的名称,但是参数列表不相同的情形,这样的同名不同参数的函数或者方法之间,互相称之为重载函数或者方法。
*构造函数 − 主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。
*析构函数 − 析构函数(destructor) 与构造函数相反,当对象结束其生命周期时(例如对象所在的函数已调用完毕),系统自动执行析构函数。析构函数往往用来做"清理善后" 的工作(例如在建立对象时用new开辟了一片内存空间,应在退出前在析构函数中用delete释放)。
*/
//1创建一个类
class Ain{
    /*成员变量*/
    var $url;

    var $title;
    /*成员函数*/
    function fenlei($par){
        $this->title = $par;
    } 
}
//2构造函数
function _construct( $par1, $par2 ) {//_construct是关键字,不能改
    $this->url = $par1;
    $this->title = $par2;
 }
 //3析构函数
 class Myxigouhanshu{
     function _construct(){
         $this->name= "Mygouzaohanshu";
     }
     function _destruct(){
        print "销毁". $this->name."\n"; 
     }
 }
 //继承
 //继承是子类(派生类)从父类(基类,超类)继承属性和方法
 //PHP使用关键字extends来继承一个类,PHP不支持多继承
 class Ema{
     function _construct(){
         $this->name= "Parent";
     }
 }
 class Eha extends Ema{
      function _destruct(){
          $this->name= "Child";
      }
 }
?>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值