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 都是一种资源
Empty 和isset都是判断空类型 但是有区别
空类型
1. 0
2.“”
3. “0”
4. 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 测试是否为函数
Echo,print,array,list 不是函数,是语言结构
...
...
类型自动转换 主要是标量
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基础语法讲解的主要内容,如果未能解决你的问题,请参考以下文章