提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
一、PHP
1.php简介
作用
php代码在服务器上执行
可删除,修改,读取,写入服务器上的文件。
收集表单数据。
接收发送cookie。
添加删除数据库中的数据。
限制用户访问一些页面。
2.php语法
php脚本可放在文档中的任何位置。
<?php开始 ,>结束,//单行注释,/**/多行注释。
php每行代码写完后以分号作为结束符。
3.php变量
php变量以“$”开头。
有global,static,局部可全局域。
php是一门弱语言。
4.echo/print
echo-可输出一个或多个字符。
print-只允许输出一个字符串。
echo的输出速度更快。
echo "这是一个", "字符串,", "使用了", "多个", "参数。";
print "输出一个字符串";
5.eof使用说明
php eof是在命令行和程序语言定义一个字符串的方法。
使用规则
1.接分号,否则编译不给通过。
2.需保证结束标识和开始标识一样。
3.结束标识独占一行。
4.开始标识可以不带引号,解释内嵌的变量和转义符号,带单引号则不解释内嵌的变量和符号。
<?php
echo <<<EOF
<h1>我的第一个标题</h1>
<p>我的第一个段落。</p>
EOF;
// 结束需要独立一行且前后不能空格
?>
<<<eof开始标记,eof结束标记,结束标记顶头写,不能有空格。
注:开始标记和结束标记之间的变量可以被解析,但函数不可以。
<?php
$name="run";
$a= <<<EOF
"abc"$name
"123"
EOF;
// 结束需要独立一行且前后不能空格
echo $a;
?>
6.数据类型
1.字符串,整型,浮点型,布尔型等。
2.var_dump()用来返回变量的数据类型和值。
1.php对象必须使用class关键字说明类对象。类可以包含属性和方法的结构。
<!DOCTYPE html>
<html>
<body>
<?php
class Car
{
var $color;
function __construct($color="green") {
$this->color = $color;
}
function what_color() {
return $this->color;
}
}
function print_vars($obj) {
foreach (get_object_vars($obj) as $prop => $val) {
echo "\t$prop = $val\n";
}
}
// 实例一个对象
$herbie = new Car("white");
// 显示 herbie 属性
echo "\therbie: Properties\n";
print_vars($herbie);
?>
</body>
</html>
注:this关键字是指向实例的指针
null值没有值,有时用来清空数据。
2.php资源类型
资源resource,保存外部资源的一个引用。常见资源数据类型:打开文件,数据库连接,图形画布区域等。
使用get_resource_type()函数可以返回资源类型。
7.php类型比较
“==”//只比较值
“===”值和类型都比较
8.php常量
1.常量被定义后,在脚本任何地方不能改变。
设置php常量,使用define()函数
bool define ( string $name , mixed $value [, bool $case_insensitive = false ] )
name:常量名称
value:值
设置ture对大小写不敏感。false对大小写敏感
<?php
// 区分大小写的常量名
define("GREETING", "欢迎访问 helloword.com");
echo GREETING; // 输出 "欢迎访问 Runoob.com"
echo '<br>';
echo greeting; // 输出 "greeting",但是有警告信息,表示该常量未定义
?>
2.常量是全局的
默认是全局变量,可以在整个运行脚本任何地方使用
<?php
define("GREETING","欢迎访问 helloword.com");
function myTest(){
echo GREETING;
}
myTest();//输出欢迎访问 helloword.com
?>
9.php字符串和运算符
注:当给一个文本值赋予变量时,给文本值加上单引号或双引号。
1.php并置运算符
并置运算符(.)把两个字符串连接一起
<?php
$txt1="Hello world!";
$txt2="What a nice day!";
echo $txt1 . " " . $txt2;
?>
输出:Hello world! What a nice day!
使用两次并置运算符需要在它们之间插入一个空格。
2.strlen()函数
求出字符串的长度
3.strops()函数
在字符串中查找一个字符或文本。
找到匹配则返回第一个匹配的字符位置。
<?php
echo strpos("Hello world!","world");
?>
输出:6
注意:字符串中第一个位置是:0
4.php运算符
-x:取x的相反符号
~x:取反
a.b:并置
<?php
$x=10;
$y=6;
echo ($x + $y); // 输出16
echo '<br>'; // 换行
echo ($x - $y); // 输出4
echo '<br>'; // 换行
echo ($x * $y); // 输出60
echo '<br>'; // 换行
echo ($x / $y); // 输出1.6666666666667
echo '<br>'; // 换行
echo ($x % $y); // 输出4
echo '<br>'; // 换行
echo -$x;//输出-10
?>
新加:intdiv(),整除运算向下取整。
<?php
var_dump(intdiv(10,3));
?>//输出 int(3)
5.php逻辑运算符
x xor y:异或,如果x和y仅且只有一个为true,则返回true
x=6
y=3
(x==6 xor y==3) 返回 false
6.php数组运算符
x<>y:不相等
x!==y:不恒等
x!=y:不相等
<?php
$x = array("a" => "red", "b" => "green");
$y = array("c" => "blue", "d" => "yellow");
$z = $x + $y; // $x 和 $y 数组合并
var_dump($z);
var_dump($x == $y);
var_dump($x === $y);
var_dump($x != $y);
var_dump($x <> $y);
var_dump($x !== $y);
?>
7.三元运算符
(expr1) ? (expr2) : (expr3)
新加了:合并运算符??
?php
// 如果 $_GET['user'] 不存在返回 'nobody',否则返回 $_GET['user'] 的值
$username = $_GET['user'] ?? 'nobody';
// 类似的三元运算符
$username = isset($_GET['user']) ? $_GET['user'] : 'nobody';
?>
8.组合比较符
$c = $a <=> $b;
如果 $a > $b, 则 $c 的值为 1。
如果 $a == $b, 则 $c 的值为 0。
如果 $a < $b, 则 $c 的值为 -1。
2.PHP语法
1.if…else…
if语句
if…else…
if…elseif …else
2.switch
//有选择的执行若干代码块之一
switch…case
break:用来阻止代码跳入下一个case中继续执行。default:用来不存在的匹配。
<?php
switch (n)
{
case label1:
如果 n=label1,此处代码将执行;
break;
case label2:
如果 n=label2,此处代码将执行;
break;
default:
如果 n 既不等于 label1 也不等于 label2,此处代码将执行;
}
?>
3.php数组
数组:单个变量中存储多个值的特殊变量。
<?php
$cars=array("Volvo","BMW","Toyota");
echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";
?>
1.php中创建数组
array():函数创建数组
三种类型
数值数组
关联数组
多维数组
1.数值数组
自动分配array()
人工分配
$cars[0]=“bmw”
<?php
$cars=array("Volvo","BMW","Toyota");
echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";
?>
2.获取数组的长度-count()函数
<?php
$cars=array("Volvo","BMW","Toyota");
echo count($cars);//输出3
?>
3.遍历数值数组
<?php
$cars=array("Volvo","BMW","Toyota");
$arrlength=count($cars);
for($x=0;$x<$arrlength;$x++)
{
echo $cars[$x];
echo "<br>";
}
?>
4.关联数组
使用你分配给数组的指定键的数组
<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
echo "Peter is " . $age['Peter'] . " years old.";
?>
5.遍历关联数组
遍历并打印关联数组中的值。使用foreach循环
<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
foreach($age as $x=>$x_value)
{
echo "Key=" . $x . ", Value=" . $x_value;
echo "<br>";
}
?>
输出
Key=Peter, Value=35
Key=Ben, Value=37
Key=Joe, Value=43
4.php数组排序
数组中的元素可按字母或数字顺序进行降序或升序排列
sort():升序排列
rsort:降序排列
asort:根据数组的值,升序排列
ksort:根据键,升序
arsort:值,降
krsort:键,降序
<?php
$numbers=array(4,6,2,22,11);
sort($numbers);
print_r($numbers);
?>
输出:
Array
(
[0] => 2
[1] => 4
[2] => 6
[3] => 11
[4] => 22
)
5.php超级全局变量
超级全局变量,在一个脚本的全部作用域都可用。
$_globals
$_server
$_request
1.$_GLOBALS
包含了全局变量的全局组合数组。变量的名字就是数组的键。
<!DOCTYPE html>
<html>
<body>
<?php
$x = 75;
$y = 25;
function addition()
{
$GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];
}
addition();
echo $z;//输出100
?>
</body>
</html>
2.$_SERVER
$_SERVER是一个包含了头信息,路径,脚本等的数组
<?php
echo $_SERVER['PHP_SELF'];
echo "<br>";
echo $_SERVER['SERVER_NAME'];
echo "<br>";
echo $_SERVER['HTTP_HOST'];
echo "<br>";
echo $_SERVER['HTTP_REFERER'];
echo "<br>";
echo $_SERVER['HTTP_USER_AGENT'];
echo "<br>";
echo $_SERVER['SCRIPT_NAME'];
?>
3. R E Q U E S T 和 _REQUEST和 REQUEST和_POST
用于收集html表单提交的数据
当用户点击submit提交表单数据时,表单数据将发送到form标签中
action指定的脚本文件。
可以使用全局变量$_REQUEST来收集input中的字段数据。
<!DOCTYPE html>
<html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
<?php
$name = htmlspecialchars($_REQUEST['fname']);
echo $name;
?>
</body>
</html>
4.$_GET
<html>
<body>
<a href="test_get.php?subject=PHP&web=runoob.com">Test $GET</a>
</body>
</html>
注:当用户点击链接 “Test $GET”, 参数 “subject” 和 “web” 将发送至"test_get.php",你可以在 “test_get.php” 文件中使用 $_GET 变量来获取这些数据。
以下实例显示了 “test_get.php” 文件的代码:
<html>
<body>
<?php
echo "Study " . $_GET['subject'] . " @ " . $_GET['web'];
?>//输出:Study PHP @ runoob.com
</body>
</html>
总结
成功贵在坚持,持之以恒!!