定义
PHP 全称 Hypertext Preprocessor 超文本预处理器
PHP 文件可包含文本、HTML、JavaScript代码和 PHP 代码
PHP 代码在服务器上执行,结果以纯 HTML 形式返回给浏览器
PHP 文件的默认文件扩展名是 “.php”
<?php
// php代码片段
?>
php注释
<?php
// 这是单行注释
# 这也是单行注释
/*
这是多行注释
多行注释
多行注释
*/
php变量
- 变量以 $ 符号开始,后面跟着变量的名称
- 变量名必须以字母或者下划线字符开始
- 变量名只能包含字母数字字符以及下划线(A-z、0-9 和 _)
- 变量名不能包含空格
- 变量名是区分大小写的($y 和 $Y 是两个不同的变量)
- 全局变量无法直接被函数访问,需要声明global关键字
- 局部变量无法在函数外被访问
<?php
$x=5;
$y=10;
function myTest()
{
global $x,$y;
$y=$x+$y;
}
myTest();
echo $y; // 输出 15
?>
PHP 将所有全局变量存储在一个名为 $GLOBALS[index] 的数组中。 index 保存变量的名称。这个数组可以在函数内部访问,也可以直接用来更新全局变量。
<?php
$x=5;
$y=10;
function myTest()
{
$GLOBALS['y']=$GLOBALS['x']+$GLOBALS['y'];
}
myTest();
echo $y; // 15
?>
static关键字
函数内的局部变量在函数调用结束后会被销毁,如果需要持续使用该局部变量,则需要声明static关键字。
<?php
function myTest()
{
static $x=0;
echo $x;
$x++;
echo PHP_EOL; // 换行符
}
myTest(); // 0
myTest(); // 1
myTest(); // 2
?>
echo & print
- echo - 可以输出一个或多个字符串
- print - 只允许输出一个字符串,返回值总为 1
echo 输出的速度比 print 快, echo 没有返回值,print有返回值1。
在echo命令和print命令中使用数组
<?php
$cars=array("Volvo","BMW","Toyota");
print "<br>";
print "我车的品牌是 {$cars[0]}";
echo "<br>";
echo "我车的品牌是 {$cars[0]}";
?>
// 两者都可以使用html标签
php定界符
EOF 是在命令行或者程序语言中定义字符串二点方法。
- 必须后接分号,否则编译通不过。
- EOF 可以用任意其它字符代替,只需保证结束标识与开始标识一致。
- 结束标识必须顶格独自占一行(即必须从行首开始,前后不能衔接任何空白和字符)。
- 开始标识可以不带引号或带单双引号,不带引号与带双引号效果一致,解释内嵌的变量和转义符号,带单引号则不解释内嵌的变量和转义符
<?php
echo <<<EOF
<h1>我的第一个标题</h1>
<p>我的第一个段落。</p>
EOF;
// 结束需要独立一行且前后不能空格
?>
php 数据类型
String(字符串), Integer(整型), Float(浮点型), Boolean(布尔型), Array(数组),
Object(对象), NULL(空值)
PHP var_dump() 函数返回变量的数据类型和值
声明数组
<?php
$cars=array("Volvo","BMW","Toyota");
var_dump($cars);
?>
php类型比较
<?php
echo '0 == false: ';
var_dump(0 == false); // bool(true)
echo '0 === false: ';
var_dump(0 === false); // bool(false)
echo PHP_EOL;
echo '0 == null: ';
var_dump(0 == null); // bool(true)
echo '0 === null: ';
var_dump(0 === null); // bool(false)
echo PHP_EOL;
echo 'false == null: ';
var_dump(false == null); // bool(true)
echo 'false === null: ';
var_dump(false === null); // bool(false)
echo PHP_EOL;
echo '"0" == false: ';
var_dump("0" == false); // bool(true)
echo '"0" === false: ';
var_dump("0" === false); // bool(false)
echo PHP_EOL;
echo '"0" == null: ';
var_dump("0" == null); // bool(false)
echo '"0" === null: ';
var_dump("0" === null); // bool(false)
echo PHP_EOL;
echo '"" == false: ';
var_dump("" == false); // bool(true)
echo '"" === false: ';
var_dump("" === false); // bool(false)
echo PHP_EOL;
echo '"" == null: ';
var_dump("" == null); // bool(true)
echo '"" === null: ';
var_dump("" === null); // bool(false)
多种类型比较
php常量 设置常量,使用 define() 函数
常量是一个简单值的标识符。该值在脚本中不能改变。
一个常量由英文字母、下划线、和数字组成,但数字不能作为首字母出现。 (常量名不需要加 $ 修饰符)。
注意: 常量在整个脚本中都可以使用。
语法:
bool define ( string $name , mixed $value [, bool $case_insensitive = false ] )
name:必选参数,常量名称,即标志符。
value:必选参数,常量的值。
case_insensitive :可选参数,如果设置为 TRUE,该常量则大小写不敏感。默认是大小写敏感的。
<?php
// 不区分大小写的常量名
define("GREETING", "欢迎访问 Runoob.com", true);
echo greeting; // 输出 "欢迎访问 Runoob.com"
?>
php字符串变量
<?php
$txt1="Hello world!";
$txt2="What a nice day!";
echo $txt1 . " " . $txt2;
?>
并置运算符 .
strlen() 函数 返回字符串的长度
strpos()函数用于在字符串中查找一个字符或者一段指定的文本,找到则返回第一个匹配字符的位置,未找到就返回
false。字符串中第一个字符的位置是0不是1.
三元运算符
u s e r n a m e = i s s e t ( username = isset( username=isset(_GET[‘user’]) ? $_GET[‘user’] : ‘nobody’;
??运算符类似于三元运算符
// 如果 $_GET[‘user’] 不存在返回 ‘nobody’,否则返回 $_GET[‘user’] 的值 $username =
$_GET[‘user’] ?? ‘nobody’;
<=>组合比较符(combined comparison operator)也称之为太空船操作符。组合比较运算符可以轻松实现两个变量的比较,当然不仅限于数值类数据的比较。
$c = $a <=> $b;
如果 $a > $b, 则 $c 的值为 1。 如果 $a == $b, 则 $c 的值为 0。 如果 $a < $b, 则 $c 的值为
-1。
<?php
// 整型
echo 1 <=> 1; // 0
echo 1 <=> 2; // -1
echo 2 <=> 1; // 1
// 浮点型
echo 1.5 <=> 1.5; // 0
echo 1.5 <=> 2.5; // -1
echo 2.5 <=> 1.5; // 1
// 字符串
echo "a" <=> "a"; // 0
echo "a" <=> "b"; // -1
echo "b" <=> "a"; // 1
?>
php数组
- 数值数组: 带有数字 ID 键的数组
- 关联数组: 带有指定的键的数组,每个键关联一个值
- 多维数组: 包含一个或多个数组的数组
count()函数返回数组长度
关联数组
两种创建方法
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
$age['Peter']="35";
$age['Ben']="37";
$age['Joe']="43";
php数组排序
- sort() 升序
- rsort() 降序
- asort() 根据关联数组的值,对数组进行升序
- ksort() 根据关联数组的键,对数组进行升序
- arsort() 根据关联数组的值,对数组进行降序
- krsrot() 根据关联数组的键,对数组进行降序
foreach循环数组
foreach ($array as $value)
{
要执行代码;
}
php魔术常量
_LINE_ :文件中的当前行号
_FILE_ :文件的完整路径和文件名
_DIR_ : 文件所在目录
_FUNCTION_ : 函数名称
_CLASS_ :类名
_TRAIT_ : trait的名字
_METHOD_ : 类的方法名
_NAMESPACE_ : 命名空间
trait 是代码复用的一个方法
<?php
class Base {
public function sayHello() {
echo 'Hello ';
}
}
trait SayWorld {
public function sayHello() {
parent::sayHello();
echo 'World!';
}
}
class MyHelloWorld extends Base {
use SayWorld;
}
$o = new MyHelloWorld();
$o->sayHello();
?>