PHP基础语法讲解

Posted 行走江湖的码农

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP基础语法讲解相关的知识,希望对你有一定的参考价值。

Css  
隐藏 有区分站位隐藏和非站位隐藏

Visible是站位隐藏


Apache 配置文件
默认是80端口  也可以修改成其他的端口  比如8080  在httpd.ini 配置文件  listend 80


Httpd配置文件介绍
<IfModule dir_module>
    DirectoryIndex index.html index.php index.htm l.php
</IfModule>

表示默认 自动识别,  从左到右

一般需要编译的语言是强类型的语言

Php是弱类型语言, 不需要提前声明,只需要php解析器解析就可以

Php基础

Php输出有这个几种  echo var_dump  print_r


在utf8下 一个中文:3个字符
在gbk下一个中文2个字符


<?php 
$arrayName = array('zhangsan','lisi','王虎' );
echo "<pre>";
 print_r($arrayName);
 echo "</pre>";
 ?>

会原样输出结果
Array
(
    [0] => zhangsan
    [1] => lisi
    [2] => 王虎
)


Php变量:
1.普通变量
2.可变变量
3.变量引用
引用是内存的堆和栈


可变变量
<?php   
        $name="zhangsan";
        $$name="小红"; //  可变变量  表示上面的$name又是一个变量
		echo $name;   //输出还是zhangsan
		echo $$name;   //输出是小红
        echo $zhangsan;   //输出小红 表示将zhangsna当做变量
 ?>

变量引用

        $a=10;
        $b=&$a;  //将$a内存地址复制给$b 
        $b=20;
        echo $a;
        echo $b;  
        // 输出结果都是20


Php8种变量数据类型
1.整形
2.浮点型
3.字符型
4.布尔
5.数组
6.对象
7.资源
8.Null类型

False  var_dump 和echo printf_r  都是空
字符串连接是.表示
类对象
Class Perple
Public function say()
Echo “say”;



Open mysql_connect  都是一种资源

Emptyisset都是判断空类型 但是有区别

空类型 
1.  0
2.“”
3.04. Flase
5. array()
6. Null
7. 没有定义 

类型测试
判断数组
Is_int,is_float,is_string is_bool   这四种统称为标量
is_object, Is_array  ,  复合类型
is_resouce,is_null, 特殊类型

Is__file
Is_scalar  是否标量
Is_numeric
Is_callable  测试是否为函数

Echoprintarraylist 不是函数,是语言结构
...
...


类型自动转换  主要是标量
Int 转float  int转string 或者float 转int,或者string转bool

$a=10;
Echo (bool)$a;

Unset :删除变量
php中的单双引号
尽量使用单引号


常量的定义和使用
常量一但被赋值,不可以被修改
Define()


Php  连接mysql  在test这张数据库中 无需密码  可以直接连接查询


Php预定义常量
__FILE__
__FUNCTION__
__FILE__ //系统的绝对路径
PHP_OS
M_PI
PHP_VERSION
__CLASS__
__METHOD__

@屏蔽错误 ,
数组运算符=>
对象运算符->


=== 可以检测类型 


条件类型
If else ifelse
Switch case 
While dowhile
For foreach
List each

 $a=array("zhangsan"=>"haha","wanghu"=>"123");
 while (list($key,$val)=each($a)) 
    echo $key."---".$val."<br/>";
 


数组多维  尽量不要超过三次
$arr2 = array("zhangsan","haha" ,
    array("1","2"),
    array("xiaoming3"),
    "xiaomi4"
    );
foreach ($arr2 as $key) 
    if(is_array($key))
        foreach ($key	 as $key2) 
                echo $key2."<br/>";
        
    else
        echo $key."<br/>";
    
   


超全局数组
1.$_SERVER
2.$_GET
3.$_POST
4.$_REQUEST
5.$_FILES
6.$_COOKIES
7.$_SESSION
8.$GLOBALS


$_SERVER[‘remote_port’]   1024~65535 随机
$_SERVER[‘DOCUMENT_ROOT’]  服务端地址
$_SERVER[‘REMOTE_ADDR’]   //远端地址
$_SERVER[‘REQUEST_STRING’]  请求字符串

$_SERVER[‘PHP_SELF’]  本地地址
$_SERVER[‘REQUEST_TIME’] 时间戳  1970-1-1 0:0:0 开始


Magic_quotes_gpc 默认是打开 提交数据会默认增加反斜线

Addslashes  增加反斜线
Stripslashes  删除反斜杠



Session_start();
$_SESSION(“name”,”admin”);

其他页面
Session_start();  页面之前不能有输出,但是header之前不能有输出
Echo $_SESSION[‘name’]  取值

File上传文件:
Form  表单  enctype=”multipart/form-data”  文件编码

设置变量为超全局变量
 $GLOBALS[‘NAME]=”ZHANGSAN”;
 $GLOBALS[_SERVER];

数组函数
字符串函数

Array_keys()
Array_values()
In_array()
Array_flip()  交换数组键和值
Array_reverse()

Count()
Array_count_values()  统计值


统计数组中相同值出现的次数
$arr[$value]++;  
array_unque() 删除数组中相同的值

数组排序和过滤
Array_filter() 过滤出来哪些
Array_map() 映射值


Array_filter() 使用
// 过滤及格同学
$arr=array("zhangsan"=>50,"li"=>70,"xiaoming"=>50,"mingming"=>60);
function jige($val)
        if($val>=60)
            return $val;
        else
            return false;
        

$arr2=array_filter($arr,"jige");
var_dump($arr2);


回调函数:

$arr=array("zhangsan"=>50,"li"=>70,"xiaoming"=>50,"mingming"=>60);
function jige($val) 
        if($val>=60)
            return $val;
        else
            return false;
        

$arr2=array_filter($arr,"jige");  //jike就是回调函数
var_dump($arr2);



递归
function test($test)
    static $num;
    if($test>=1)
        $num+=$test;
        test(--$test);
    
    else
        return $num;
    

echo test(3);


数组的合并,拆分,分解和结合



implode() ,join()  合并
explode()  拆分

array_slice($arr,0,3) //返回截取结果
array_splice($arr,0,3,$arr2) //返回截取结果,替换

array_merge($arr1,$arr2); //合并数组

array_combine($a,$b) //合并数组

array_diff($a,$b);  //交集

array_intersect()  /差集

array_pop();  //弹出最后一个
array_push()  //添加一个
array_shift(); //删除第一个
array_unshift();  //在数组最前面添加一个


array_rand()  //随机的key

shuffle($arr);  //随机打乱数组

range(0,9);
range(A,Z);
range(a,z);  

array_sum($aa);

array_flip($arr);  //数值key value对调

格式化输出
$num=10;
print_r("test--%d",$num);
sprintf("test--%d",$num);


echo "asdastest阿斯顿111","111","2222";
echo "<br/>";
// 这样输出是不允许
print "asdasd","111sadasd"; 

常用字符串格式化



Trim去除空格

$test=" 111 ";
echo strlen(ltrim($test));
echo strlen(rtrim($test));
echo strlen(trim($test));

Strlen获取字符串长度

str_pad($str,10,"-",STR_PAD_BOTH)  ;
str_pad($str,4,"-",STR_PAD_LEFT)  ;
str_pad($str,6,"-",STR_PAD_RIGHT)  ;

字符串重复   应用场景 菜单
$a="123";
echo str_repeat($a,4);

字符串大小写
strtoupper($a);
strtolower($a);


$a="abc bcd";
echo ucfirst($a);  //字符串首字
echo "<br/>";
echo ucwords($a); //每个字符串首字大写
echo strrev($a);



货币转换number_format
echo number_format("5000000")."<br>";
echo number_format("5000000",2)."<br>";
echo number_format("5000000",2,",",".");
输出结果
5,000,000
5,000,000.00
5.000.000,00

echo str_shuffle($a)

html标签的字符串函数

echo nl2br("111\\n222");  //换行

echo htmlspecialchars("'11''<>\\\\");   转实体
echo "<br/>";
echo ("'11'\\'\\<\\>\\\\");
输出结果
'11''<>\\
'11'\\'\\<\\>\\


Php默认添加了 addslashes() 转移字符
去除\\   stripslashes()


echo strip_tags("<h1 class='h1demo' style='background:blue'><div class='test' style='color:red'>test1</div></h1>","<div>");  //去指定标签

输出结果:test1

字符串比较
echo strcmp($atr, $atr2);

echo ord("a");  //转ascii
chr("65"); //ascii转字符


// 什么是自然  12>3
$a="a123";  
$b="a3";
strnatcmp($str, $ste2)  //自然比较  $a>$b

截取字符串
echo substr($a,0,4);


Mb_substr  字符串截取处理
$str="中国字符串截取的测试数据";
echo mb_substr($str,0,4,"utf-8");
echo mb_substr($str,0,4,"gbk");


Strpos,strrchr strstr函数
strpos("http:www/baoud.com/index.php/a/1","/");  默认获取第一个/位置
// 返回字符串
$url="http:www/baoud.com/index.php/a/1";
echo strstr($url, "/") //从前往后   输出 /baoud.com/index.php/a/1
strrchr($url, "/")  //从后往前


str_replace 强大替换
$str="http://www.baidu.com/test";
$a=array("http","www","baidu");
$b=array("test","test2","test3");
echo str_replace($a,$b,$str);

------------------

未完待续,明天更新

以上是关于PHP基础语法讲解的主要内容,如果未能解决你的问题,请参考以下文章

PHP的输出语法

标量类型与返回值类型声明

PHP7 的新增性能

php字符串类型讲解

PHP基础知识回顾

php字符串类型讲解