4月24 php基础及函数的应用

时间:2021-07-24 03:19:29

PHP是一种被广泛认可应用,运行在服务端的脚本语言,PHP需要安转PHP应用程序服务器去解释执行,是用来协助Web服务器工作的编程语言,因此所写的任何代码只有在www文件下的才能实施预览。PHP是一种弱类型语言,开发的环境也比较的随便,可以在DW中或在记事本中编写代码都是可以的。在DW中写在<body></body>内

PHP的语言标记:
<?php ?>是最最常见的,应用最广泛
<? ?> 是简短风格的标记,会被禁用干扰,在特定的环境下才可以,一般不考虑
<% %>课本有介绍,老师没有讲

PHP输出语句:
<?php
echo "hello"; //最常见的输出语句
print "word"; //也可以输出,但是不同在于只能输出一个字符串,不能多个
echo "hi","nihao"; //像这样时print则不可以
?>

PHP的注释方法:
与c#中的注释是相同的,// 是单行注释,/* */是多行的注释

数据类型
在c#中常见的数据类型是:int double float string char(字符型) datetime bool
而在PHP中由于其是弱类型语言,则前面不需要添加变量名,但是全部都需要以$符号开头
<?php
$a=5; //定义整型
$b=5.5; //小数型
$c=5.55; //双精度浮点型
$d=ture; //bool型
echo $d;
?>
与c#中不同的是,而且要特别注意,是关于可变变量
<?php
$a="hello";
$hello="world";
echo $$a; //输出word
echo "$a $hello"; //输出hello word
echo "$a ${$a}"; //输出hell word
?>

<?php
$a=5; //空或是0表示false,1表示true
echo isset($a); //当$a没有被定义时,输出空白页面,$a定义时输出1
unset($a); //清除bianliang
empty($a); //判断变量是否为空
echo isset($a);
?>

变量的引用赋值&的一些注意事项
PHP中提供了另一种方式给另一个变量:引用变量,所用&
<?php
$a=5;
$b=&$a; //&取地址,取了$a的值
echo $a; //输出5
echo "<br />";
echo $b; //输出5

$b=10;
echo $a; //输出10 因为&取地址后一个发生变化,相应的关联的也会变化
echo "<br />";
echo $b; //输出10

$foo="bob";
$bar=&$foo;
echo $bar; //没有发生改变之前只把地址传过去
$bar="hello my love"; //一个改变其余那个也变了
echo $bar;
echo $foo;
$foo="nihao nihao nihao"; //两者那个变化其余发生改变成立
echo $bar;
echo $foo;

$foo=25;
$bar=&$foo;
$bar=&(5*7); //无效的赋值,错误的
function test()
{
return 25;
}
$bar=&test();

$a=25;
$b=&$a;
unset($b); //清空变量
echo $a; //输出25
echo isset($b); //空的,同上
?>
准确输出,有转换的写法
<?php
$a=5;
var_dump($a); //输出变量的准确类型
$b =(string)$a; //类型转换
var_dump($b);
$c=(float)$a;
var_dump($c);
?>

PHP中的运算符号:
大部分和c#中是一样的,特别注意/,在c#中是去商的,因为他们的类型不能相互转换
int a=3;
int b=10;
b/a=3;
而在PHP中
<?php
$a=10;
$b=3;
echo $a/$b; //输出3.333333可以自动转换

echo "nihao"."hello"; //在php中字符串的拼接是用.,而不是像c#中用+
?>
没有操作好知道就可以:
@的作用是错误抑制符,可以屏蔽错误
例如:echo @$a;

三目运算符:在c#中是条件运算符
<?php
echo 5==5?"男":"女"; //条件运算符在c#中,,, 现在三目运算符
?>
条件成立吗?是输出前面的,否输出:后面的 //上题输出男

以上是24号上午老师所讲的内容,
对于运算的++,--还有一定的总结
<?php
$a=10;
$b=$a++; //先进性赋值 $b=$a=10; $a=$a+1;
echo $a; // 输出11
echo $b; // 输出10

$a = 10;
$b = ++$a; //先进行运算的$a=$a+1;再赋值 $b=$a;
echo $a; // 输出11
echo $b; // 输出11

$a=10;
$b=$a--; //先进性赋值 $b=$a=10; $a=$a-1;
echo $a; // 输出9
echo $b; // 输出10

$a = 10;
$b = --$a; //先进性运算 $a=$a-1;然后$b=$a;
echo $a; // 输出9
echo $b; // 输出9
?>

以上是PHP的数据类型,以及基础的知识点

PHP中的语句:条件语句,循环语句,分支语句与c#是同样的
条件语句:
<?php
$a=5;
if($a==8)
{
echo "正确";
}
else
{
echo "不相等";
}
?>
条件语句形式有:与c#中是完完全全相同的
//if
//if....else....
//if...else if...
//if的嵌套
switch case类型的:
<?php
$a=7;
switch($a)
{
case 1:
echo "111"; //当没break时候则输出后面的所有
break;
case 2;
echo "222";
break;
case 3:
echo "333";
break;
default: //不在范围内的时候默认输出
echo "不在范围";
}
?>

循环语句
for类型的
for($i=1;$i<10;$i++)
{
echo $i."<br>";
}
while类型的
$a=1;
while($a<10)
{
echo $a."<br>";
$a++;
}
循环语句两种形式与c#中是完全相同的

函数的一些重点内容
函数四要素:返回类型,函数名(函数名最好是用首字母大写),参数(可以有也可以没有),函

数体。这里一定要区分好在c#中,例如:pulic void name(){},在js中function name(){}
PHP中的函数问题:
最简单的
<?php
function Show()
{
echo "hello";
}
Show();

//有参数的函数
//有参数的
function Show($a,$b)
{
echo $a+$b;
}
Show(3,4);
Show(3,4,5); //可以多写但是不可少些

//有默认值的函数
function Show($a=5,$b=5)
{
echo $a+$b;
}
Show(3) //有默认值时看看是否被覆盖输出时3+5=8
Show(2,3);//输出是5

//参数可变的函数
function Show()
{
$attr = func_get_args(); //通过方法可以自动获取函数的参数
$sum =0;
for($i=0;$i<count($attr);$i++) //func_num_args() 获取参数的个数
{
$sum =$sum+$attr[$i];
}
echo $sum;
}
Show(1,2,3);
//两种方法是一样的
function Show()
{
$attr = func_get_args(); //通过方法可以自动获取函数的参数
$sum =0;
$a=func_num_args();
for($i=0;$i<$a;$i++) //func_num_args() 获取参数的个数
{
$sum =$sum+$attr[$i];
}
echo $sum;
}
Show(1,2,3);

//有返回值的函数
function Show()
{
return "aaaa";
}
echo Show();

//常用的函数
//随机数的函数
echo rand()."<br>"; //括号里面没有写的时候范围很广
echo rand(2,7)."<br>"; //从2到7随机数字
echo rand()%75; //课本上讲的

//时间函数
echo time(); //此时输出的是时间戳
echo date("Y-m-d H:i:s"); //因为时间没有设置东八区的时间所有不准确
date_default_timezone_set('PRC'); //PRC也可以是"Etc/GMT-8"
echo date("Y-m-d H:i:s:ms"); //ms是毫秒
echo strtotime("2016-4-24"); //将时间格式转换为时间戳 php中时间的方式 与上面的正好

相反

//字符串处理函数 都是重点需要完全记住
$a="hello";
echo strlen($a); //返回字符串的长度
echo strcmp("Hello","Hello"); //需要两个字符串作为参数,比较两个字符串是否相等,区分

大小写,相等0,1or-1都是不等
echo strcasecmp("hello","Hell"); //需要两个字符串作为参数,比较两个字符串是否相等,不区

分大小写,相等0,1or-1都是不等
echo strtolower("HELLO"); //将字符串装换为小写
echo strtoupper("word"); //将字符串装换为大写

$str ="hello|word|join|on";
var_dump(explode("|",$str)); //拆分字符串 返回数组,在$str中以|未拆分 不能用

echo输出
$attr=array("aaa","111","ccc");
echo implode("#",$attr); //将数组拼接成字符串,

$str="hello|aa|bbb|cccc";
echo substr_replace($str,"wwww",0,6); //首先|也是一个字符串,从a索引截取长度是b,用

w替换,0是索引,6是长度 替换字符串(后面两个决定)
echo str_replace("c","q",$str); //查找并全部替换,将c全部替换成q
echo substr("$str",8,3); //从哪个位置开始截取,截取长度5   

?>
关于单引号和双引号的一些用法: P55
单引号:指定的一个简单的字符串的最简单的方法,在单引号中不能再含有单引号

<?php
$s1="hello"; //简单的定义都是可以的
$s2='join';

//1.双引号里面可以使用转义字符,单引号里面不可以使用会原样输出,不能使用
//输出hello"word
$s1="hello'word";
$s2="hello\"word"; // \是转义字符 双引号里面可以使用转义字符
$s3='hello"word';
$s4='hello\"word'; //会原样输出
echo $s1."<br>"; //单引号里面可以写双引号,双引号里面可以写单引号
echo $s2."<br>";
echo $s3."<br>";
echo $s4."<br>";

//2.双引号里面可以解析变量,单引号里面不行
$a="join";
$s1="hello\"{$a}word"; //把变量a嵌套在字符串中
echo $s1."<br>";
$s2='hello\"{$a}word'; //原样输出
echo $s2;

//定义字符串(块),这个字符串很大很大
echo "<div style='color:white; background-color:red; height:50px;

width:80px;'>hello</div>";
//双引号里面的引号改成单引号

//另外一种方法
$str =<<<ETO
<div style=" background-color:red; color:white; width:100px; height:50px">hello</div>
<div style=" background-color:red; color:white; width:100px; height:50px">wold</div>
ETO;
echo $str;
//<<<ETO首先之间不能有任何字符,空格都不可以,要用大写,名字随便

$a=<<<NAME
<div>111</div>
<div>222</div>
<div>333</div>
<div>444</div> //div之间不可以用分号
NAME;
echo $a;

?>