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

PHP基础学习之语法

2015-03-31 08:46 465 查看
1、PHP 的脚本块以 <?php 开始,以 ?> 结束。

<?php

?>


2、向浏览器输出文本可以用echo或者print,注意PHP中的每一句脚本都要以分号";"结束,用法如下:

<?php
	echo "hello<br/>";
	print("world");
?>


3、PHP的注释和c、java类似,可以用//或者/**/,如下所示:

<?php
	//echo "hello<br/>";
	/*print("world");*/
?>


4、PHP中的变量以$开头,且不需要指定变量的类型,用法如下:

<?php
	$name = "zhangsan";
	echo $name;
	
	echo "<br/>";
	
	$age = 20;
	echo $age;
	
	echo "<br/>";
	
	echo $name . " is " . $age . " years old.";
?>
上面的脚本在浏览器中输出如下:



注意:PHP中连接字符串用的是点"."

5、求字符串长度函数strlen(),该函数返回的字符串长度值,如下所示:

<?php
	$str = "hello, world!";
	echo strlen($str);
?>
上面的脚本在浏览器中输出结果为:13

6、strpos($str1, $str2)函数,该函数有两个字符串类型的参数,用于检索str2在str1中的起始位置,用法如下:

<?php
	$str1 = "hello, world!";
	$str2 = "o";
	$pos = strpos($str1, $str2);
	echo $pos;
?>


上面的脚本在浏览器中输出结果为:4,如果没有在str1中匹配到str2,则浏览器不会有输出

7、PHP中的运算符与java、c中的运算符都差不多,需要注意的是,PHP中比较两个字符串是否相等,直接用"=="就行了,测试代码如下:

<?php
	function equals($str1, $str2){
		if($str1 == $str2){
			echo "equals<br/>";
		}else{
			echo "not equals<br/>";
		}
	}
	$str1 = "hello";
	$str2 = "hello2";
	$str3 = "hello";
	equals($str1, $str2);
	equals($str1, $str3);
?>


上面的脚本定义了一个函数,名为equals,有两个参数,在函数体内比较如果两个参数相等,则输出equals,否则输出not equals,上面的代码在浏览器中输出如下图所示:



注意PHP中函数的定义,是以function开头,加上函数名和括号里的参数名

8、PHP中的条件语句,类似于java里的条件语句,不过PHP中加了关键字elseif,用法如下:

<?php
	$a = 3;
	$b = 2;
	if($a > $b){
		echo "a > b";
	}elseif($a < $b){
		echo "a < b";
	}else{
		echo "a = b";
	}
?>
9、PHP中的switch语句,用法和java类似,而且PHP中的switch支持字符串,用法如下:

<?php
$a = "c";
switch ($a) {
	case "a" :
		echo "a";
		break;
	case "b" :
		echo "b";
		break;
	case "c" :
		echo "c";
		break;
}
?>


10、PHP中数组的使用:

创建数组有两种方法,如下面的脚本所示:

<?php
	//第一种创建数组的方式
	$names = array("tom", "jack", "herry");
	foreach($names as $name){
		echo $name . "<br/>";
	}
	
	//第二种创建数组的方式
	$colors[0] = "red";
	$colors[1] = "blue";
	$colors[2] = "green";
	foreach($colors as $color){
		echo $color . "<br/>";
	}
	
?>


上面的脚本在浏览器中输出为:



注意上面用foreach循环输出了数组里的内容

PHP中的数组有一种用法,特别类似java里的Map,即可以按键值对的形式存储数组,看下面的脚本:
<?php
	$names = array("tom" => 23, "jack" => 18, "herry" => 21);
	echo $names["jack"];
?>
上面的脚本中,我们为不同姓名的人分配了一个年龄,然后可以根据姓名取出他的年龄

11、PHP函数在之前已有用到,PHP的函数可以带参数,可以有返回值,示例代码如下:

<?php
	function add($num1, $num2){
		return $num1 + $num2;
	}
	echo "3 + 4 = " . add(3, 4);
?>


12、PHP处理表单提交的数据,主要用PHP内置的变量$_GET和$_POST,从名字上就可以看出,$_GET用于接收表单以GET方式提交的数据,$_POST用于接收表单以POST方式提交的数据,我们新建两个文件,分别为login.php和result.php,将login.php中的表单数据提交给result.php,然后显示数据,下面是脚本:

login.php脚本如下:

<form action="result.php" method="post">
<input type="text" name="username"/>
<br/>
<input type="submit" value="login">
</form>
result.php脚本如下:

<?php
	$username = $_POST["username"];
	echo "welcome user : " . $username;
?>


在浏览器中访问的结果如下:





如果表单中的method为get,则result.php中需要用$_GET["username"]来取得输入的值

PHP中的内置变量$_REQUEST可以取到get或post方式提交的表单数据

13、PHP格式化时间的date()函数

PHP的date()函数有两个参数,第一个参数是格式化的格式,为必须参数,第二个是时间戳,为可选参数,

date() 函数的第一个参数规定了如何格式化日期/时间。它使用字母来表示日期和时间的格式。这里列出了一些可用的字母:

d - 月中的天 (01-31)
m - 当前月,以数字计 (01-12)
Y - 当前的年(四位数)

下面的代码用于输出当前的年月日:
<?php
	echo date("Y/m/d");
?>
使用mktime()函数可以返回一个时间戳,mktime()函数的参数比较多,如下:

mktime(hour,minute,second,month,day,year)

下面的代码输出明天的日期:

<?php
	$tom = mktime(0, 0, 0, date("m"), date("d") + 1, date("Y"));
	echo date("Y/m/d", $tom);
?>
这里用date("m")获取当前的月份,date("d")获取当前的天,date("Y")获取当前的年份

14、PHP引入其他文件

PHP中引入其他文件有两种方式,使用include或require,这两个函数的不同之处在于,他们对错误的处理方式不同,include如果引入了一个不存在的页面,会在页面上显示警告信息,但是include之后的脚本会继续执行,而使用require引入一个不存在的页面,页面上会显示警告信息,且require后的脚本不会执行

15、PHP操作文件

下面的脚本是使用PHP按行读取并输出文件内容:

<?php
	$file = fopen("data.txt", "r") or exit("open file error");
	while(!feof($file)){//按行读取文件内容
		echo fgets($file) . "<br/>"; 
	}
?>
PHP使用fopen函数打开一个文件,第一个参数指定文件路径,第二个参数指定文件的打开方式,有如下几种打开方式:

模式描述
r只读。在文件的开头开始。
r+读/写。在文件的开头开始。
w只写。打开并清空文件的内容;如果文件不存在,则创建新文件。
w+读/写。打开并清空文件的内容;如果文件不存在,则创建新文件。
a追加。打开并向文件文件的末端进行写操作,如果文件不存在,则创建新文件。
a+读/追加。通过向文件末端写内容,来保持文件内容。
x只写。创建新文件。如果文件以存在,则返回 FALSE。
x+读/写。创建新文件。如果文件已存在,则返回 FALSE 和一个错误。

注释:如果 fopen() 无法打开指定文件,则返回 0 (false)。

feof()函数用于判断是否读到文件末尾,fgets()函数用于读取文件的一行,读取后文件指针会自动跳到下一行,逐字符地读取文件需要使用函数fgetc(),关闭文件则使用函数fclose()
今天的学习记录就到这里。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: