【萌芽笔记】PHP基础学习
为了以后能更方便的和后端小哥哥作对接,萌芽决定学习一下PHP,因为之前学的是JAVA语言所以理解上并不是非常的困难,不过不过只是基础语法的程度啦,让我们一起来学习一下吧~
PHP环境这里我们用本地快速搭建工具,他能帮你快速配置好Apache服务器以及php的运行环境。
- PHP 文件可包含文本、HTML、JavaScript代码和 PHP 代码
- PHP可以写在HTML里面,解析速度是先加载php代码之后再加载HTML文件,但是这之后就无法修改了,我们要的是动态的去修改数据这个时候就有了我们的ajax来帮助我们去修改他
- 说道ajax涉及到一个get请求和post请求,post请求是隐式请求,异步发送不显示内容,而get在你提交请求的时候数据将会被显示到你的url之上。
在PHP中 $ 符用于定义变量,代码格式为<?php ?>不加后面的反括号也可以的不过我们为了规范代码还是加上的好。
1.输出语句
有echo和print这两种,echo是不带返回值的而print只允许输出一个字符串,返回值总为 1。
echo的输出速度要比print更快所以一般都是用echo
但是echo能输出的东西print都能输出,并且echo不能输出的print也能输出,比如数组字符串,所以功能上print要更加强大!
据说还有一种是 var-dom 的输出方式也可以输出数组,目前没查到知道的小伙伴可以留言告诉我~
<?php
$txt1="学习 PHP";
$txt2="RUNOOB.COM";
$cars=array("Volvo","BMW","Toyota");
echo $txt1;
echo "<br>";
echo "在 $txt2 学习 PHP ";
echo "<br>";
echo "我车的品牌是 {$cars[0]}";
?>
1.1EOF
EOF可以用任意其它字符代替,只需保证结束标识与开始标识一致。PHP 定界符 EOF 的作用就是按照原样,包括换行格式什么的,输出在其内部的东西;必须后接分号,否则编译通不过。可以给插入HTML标签哦,并且在双引号内的内容也有转义效果。
<?php
$name="runoob";
$a= <<<EOF
"abc"$name
"123"
EOF;
// 结束需要独立一行且前后不能空格
echo $a;
?>
2.数据类型
String(字符串), Integer(整型), Float(浮点型), Boolean(布尔型), Array(数组), Object(对象), NULL(空值)。
PHP var_dump() 函数返回变量的数据类型和值:
说明:var_dump() 方法,判断一个变量的类型与长度,并输出变量的数值,如果变量有值,则输出是变量的值,并返回数据类型。显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。
格式:
var_dump ( mixed expression [, mixed expression [, ...]] )
注意:用保证 var_dump 中的变量必须是存在的,如果变量不存在则返回 NULL。该函数有输出的功能,因此不必加其它的输出函数。
以上截取自【菜鸟教程:马路】大佬的评论。继续说数据类型。前四种没什么好讲的和大多数编程语言一样,说一下Array和Object吧
不需要专门去new哦!
<?php
$cars=array("Volvo","BMW","Toyota");
var_dump($cars);
?>
比较常用的是以键值的形式创建的关联数组,比如“键” => 值;这里有两种创建关联数组的方法:
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
$age['Peter']="35";
$age['Ben']="37";
$age['Joe']="43";
在 PHP 中,对象必须声明。首先,你必须使用class关键字声明类对象。类是可以包含属性和方法的结构。
然后我们在类中定义数据类型,然后在实例化的类中使用数据类型:
<?php
class Car{
var $color;
function __construct($color="green") {
$this->color = $color;
}
function what_color() {
return $this->color;
}
}
?>
2.1常量
设置常量,使用 define() 函数,函数语法如下:
name:必选参数,常量名称,即标志符。value:必选参数,常量的值。case_insensitive :可选参数,如果设置为 TRUE,该常量则大小写不敏感。默认是大小写敏感的。常量也是全局的!
<?php
// 不区分大小写的常量名
define("GREETING", "欢迎访问 Runoob.com", true);
echo greeting; // 输出 "欢迎访问 Runoob.com"
?>
<?php
define("GREETING", "欢迎访问 Runoob.com");
function myTest() {
echo GREETING;
}
myTest(); // 输出 "欢迎访问 Runoob.com"
?>
运算符 (.) 用于把两个字符串值连接起来。
在JAVA当中字符串拼接用 + 号,而在php当中拼接输出则是用 .
<?php
$txt1="Hello world!";
$txt2="What a nice day!";
echo $txt1 . " " . $txt2;
?>
几个函数
strlen()用来打印字符长度,调用方法为echo strlen("Hello world!");
strpos()函数用于在字符串内查找一个字符或一段指定的文本。echo strpos("Hello world!","world"); //输出6
count()函数能够获取到数组的长度
运算符
+ 加 - 减 × 乘 / 除 % 取余 . 并置(连接两个字符串)
intdiv() 整除运算符,使用方法var_dump(intdiv(10, 3)); //返回3
先++先计算后输出,后++先输出后计算
逻辑运算方法
if语句唯一的区别是比较的值是写在“”里面的,elesif可以写在一起不写空格,很神奇命名是“”,里面为什么不是string类型
遍历关联数组
遍历并打印关联数组中的所有值,您可以使用 foreach 循环,如下所示:
<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
foreach($age as $x=>$x_value)
{
echo "Key=" . $x . ", Value=" . $x_value;
echo "<br>";
}
?>
switch语句也没什么区别,语法依旧是case,唯一不同的是新加入的default:方法,意思是如果没有匹配到的就执行,可以把它理解为else。
<?php
switch (n)
{
case label1:
如果 n=label1,此处代码将执行;
break;
case label2:
如果 n=label2,此处代码将执行;
break;
default:
如果 n 既不等于 label1 也不等于 label2,此处代码将执行;
}
?>
循环
while 循环将重复执行代码块,直到指定的条件不成立。
for 循环用于您预先知道脚本需要运行的次数的情况。
foreach 循环用于遍历数组。
<?php
$x=array("one","two","three");
foreach ($x as $value)
{
echo $value . "<br>";
}
?>
每进行一次循环,当前数组元素的值就会被赋值给 $value 变量(数组指针会逐一地移动),在进行下一次循环时,您将看到数组中的下一个值。
PHP 魔术常量
__LINE__ 的值就依赖于它在脚本中所处的行来决定。这些特殊的常量不区分大小写。文件中的当前行号。
__FILE__ 文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。
__DIR__文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。
__FUNCTION__返回函数名称。
__CLASS__返回类名称。
__TRAIT__名包括其被声明的作用区域【不太理解】
__METHOD__返回该方法被定义时的名字(区分大小写)。
__NAMESPACE__当前命名空间的名称(区分大小写)。此常量是在编译时定义的(PHP 5.3.0 新增)。
以下代码可以获取当前执行的 PHP 文件名:
echo substr(__FILE__,strlen(__DIR__)-strlen(__FILE__)+1);
PHP 函数
命名空间通过关键字namespace 来声明。如果一个文件中包含命名空间,它必须在其它所有代码之前声明命名空间。
namespace MyProject;
数组排序
- sort() - 对数组进行升序排列
- rsort() - 对数组进行降序排列
- asort() - 根据关联数组的值,对数组进行升序排列
- ksort() - 根据关联数组的键,对数组进行升序排列
- arsort() - 根据关联数组的值,对数组进行降序排列
- krsort() - 根据关联数组的键,对数组进行降序排列
超级全局变量
- $GLOBALS 是一个包含了全部变量的全局组合数组。变量的名字就是数组的键。$GLOBALS['z']
- $_SERVER 是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组
<?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'];
?>
打印结果为
- $_REQUEST 用于收集HTML表单提交的数据。
<html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
<?php
$name = $_REQUEST['fname'];
echo $name;
?>
</body>
</html>
- $_POST 被广泛应用于收集表单数据,在HTML form标签的指定该属性:"method="post"。
<html>
<body>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
<?php
$name = $_POST['fname'];
echo $name;
?>
</body>
</html>
- $_GET 同样被广泛应用于收集表单数据,在HTML form标签的指定该属性:"method="get"。
<a href="test_get.php?subject=PHP&web=runoob.com">Test $GET</a>
- $_FILES
- $_ENV
- $_COOKIE 浏览器存储
- $_SESSION 会话