您的位置:首页 > 编程语言 > PHP开发

PHP基础语法讲解

2016-04-04 23:28 621 查看
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);

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


未完待续,明天更新
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: