上一篇:《微信链接被封?代理url方式: location rewrite 组合有奇效》


《PHP 基础记忆点》

作者 vhaixingv 创建于 20-07-20 16:30:50

<?php

// PHP 代码

?>



<?php

        // 这是 PHP 单行注释

        

        /*

        这是

        PHP 多行

        注释

        */

?>



PHP 有四种不同的变量作用域:

        local

        global

        static

        parameter




<?php

echo "<h2>PHP 很有趣!</h2>";

echo "Hello world!<br>";

echo "我要学 PHP!<br>";

echo "这是一个", "字符串,", "使用了", "多个", "参数。";

?>



<?php

print "<h2>PHP 很有趣!</h2>";

print "Hello world!<br>";

print "我要学习 PHP!";

?>



<?php

$name="runoob";

$a= <<<EOF

        "abc"$name

        "123"

EOF;

// 结束需要独立一行且前后不能空格

echo $a;

?>




PHP 5 数据类型

String(字符串), Integer(整型), Float(浮点型), Boolean(布尔型), Array(数组), Object(对象), NULL(空值)。


整型:

$x = 5985;

var_dump($x);      // 显示:  int(5985)


数组:

$cars=array("Volvo","BMW","Toyota");

var_dump($cars);



对象:

在 PHP 中,对象必须声明。

首先,你必须使用class关键字声明类对象。类是可以包含属性和方法的结构。


<?php

class Car

{

  var $color;

  function __construct($color="green") {

    $this->color = $color;

  }

  function what_color() {

    return $this->color;

  }

}

?>



NULL值

$x=null;

var_dump($x);



松散比较:使用两个等号 == 比较,只比较值,不比较类型。

严格比较:用三个等号 === 比较,除了比较值,也比较类型。


比较:

0 == false: bool(true)

0 === false: bool(false)


0 == null: bool(true)

0 === null: bool(false)


false == null: bool(true)

false === null: bool(false)


"0" == false: bool(true)

"0" === false: bool(false)


"0" == null: bool(false)

"0" === null: bool(false)


"" == false: bool(true)

"" === false: bool(false)


"" == null: bool(true)

"" === null: bool(false)




设置 PHP 常量

设置常量,使用 define() 函数,函数语法如下:

bool define ( string $name , mixed $value [, bool $case_insensitive = false ] )

常量在定义后,默认是全局变量,可以在整个运行的脚本的任何地方使用。

以下实例演示了在函数内使用常量,即便常量定义在函数外也可以正常使用常量

<?php

define("GREETING", "欢迎访问 Runoob.com");

 

function myTest() {

    echo GREETING;

}

 

myTest();    // 输出 "欢迎访问 Runoob.com"

?>




PHP 字符串变量

完整String函数参见: https://www.runoob.com/php/php-ref-string.html


echo $txt1 " " $txt2;     // 合并

echo strlen("Hello world!");    // 计算长度
echo strpos("Hello world!","world");    // 字符串内查找一个字符或一段指定的文本, 上面的代码将输出:6 字符串中第一个字符的位置是0,而不是1



PHP 运算符

+ - * /     // 加减乘除

%  取余

-x  取反

<?php
    $x =2;
    echo -$x;
?>
结果: -2

a.b     并置   链接两个字符串的  // "Hi" . "Ha"


<?phpvar_dump(intdiv(10, 3));?>  // 结果 int(3)    PHP7+ 版本新增整除运算符 intdiv()


PHP 递增/递减运算符

运算符名称描述
++ x预递增x 加 1,然后返回 x
x ++后递增返回 x,然后 x 加 1
-- x预递减x 减 1,然后返回 x
x --后递减返回 x,然后 x 减 1


PHP 比较运算符

比较操作符可以让您比较两个值:

运算符名称描述实例
x == y等于如果 x 等于 y,则返回 true5==8 返回 false
x === y绝对等于如果 x 等于 y,且它们类型相同,则返回 true5==="5" 返回 false
x != y不等于如果 x 不等于 y,则返回 true5!=8 返回 true
x <> y不等于如果 x 不等于 y,则返回 true5<>8 返回 true
x !== y绝对不等于如果 x 不等于 y,或它们类型不相同,则返回 true5!=="5" 返回 true
x > y大于如果 x 大于 y,则返回 true5>8 返回 false
x < y小于如果 x 小于 y,则返回 true5<8 返回 true
x >= y大于等于如果 x 大于或者等于 y,则返回 true5>=8 返回 false
x <= y小于等于如果 x 小于或者等于 y,则返回 true5<=8 返回 true



PHP 逻辑运算符

运算符名称描述实例
x and y如果 x 和 y 都为 true,则返回 truex=6
y=3
(x < 10 and y > 1) 返回 true
x or y如果 x 和 y 至少有一个为 true,则返回 truex=6
y=3
(x==6 or y==5) 返回 true
x xor y异或如果 x 和 y 有且仅有一个为 true,则返回 truex=6
y=3
(x==6 xor y==3) 返回 false
x && y如果 x 和 y 都为 true,则返回 truex=6
y=3
(x < 10 && y > 1) 返回 true
x || y如果 x 和 y 至少有一个为 true,则返回 truex=6
y=3
(x==5 || y==5) 返回 false
! x如果 x 不为 true,则返回 truex=6
y=3
!(x==y) 返回 true

PHP 数组运算符

运算符名称描述
x + y集合x 和 y 的集合
x == y相等如果 x 和 y 具有相同的键/值对,则返回 true
x === y恒等如果 x 和 y 具有相同的键/值对,且顺序相同类型相同,则返回 true
x != y不相等如果 x 不等于 y,则返回 true
x <> y不相等如果 x 不等于 y,则返回 true
x !== y不恒等如果 x 不等于 y,则返回 true



三元运算符

另一个条件运算符是"?:"(或三元)运算符 。

语法格式

(expr1) ? (expr2) : (expr3)



$c = $a <=> $b;    // 组合比较符(PHP7+)

解析如下:
如果 $a > $b, 则 $c 的值为 1。
如果 $a == $b, 则 $c 的值为 0。
如果 $a < $b, 则 $c 的值为 -1





if (条件)

{

    if 条件成立时执行的代码;

}

elseif (条件)

{

    elseif 条件成立时执行的代码;

}

else

{

    条件不成立时执行的代码;

}



<?php

        switch (n)

        {

            case label1:

                如果 n=label1,此处代码将执行;

                break;

            case label2:

                如果 n=label2,此处代码将执行;

                break;

            default:

                如果 n 既不等于 label1 也不等于 label2,此处代码将执行;

        }

?>



PHP 数组

<?php

$cars=array("Volvo","BMW","Toyota");

echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";


echo count($cars);   // 计数

?>


遍历:

<?php

    $cars=array("Volvo","BMW","Toyota");

    $arrlength=count($cars);

     

    for($x=0;$x<$arrlength;$x++)

    {

        echo $cars[$x];

        echo "<br>";

    }

?>



这里有两种创建关联数组的方法:


$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");

or:

$age['Peter']="35";

$age['Ben']="37";

$age['Joe']="43";

随后可以在脚本中使用指定的键:

实例

<?php

$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");

echo "Peter is " . $age['Peter'] . " years old.";

?>


遍历关联数组

<?php

$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");

 

foreach($age as $x=>$x_value)

{

    echo "Key=" . $x . ", Value=" . $x_value;

    echo "<br>";

}

?>


sort() - 对数组进行升序排列            //     sort($cars);

rsort() - 对数组进行降序排列

asort() - 根据关联数组的值,对数组进行升序排列

ksort() - 根据关联数组的键,对数组进行升序排列

arsort() - 根据关联数组的值,对数组进行降序排列

krsort() - 根据关联数组的键,对数组进行降序排列



PHP 超级全局变量



PHP 循环 - While 循环


while (条件)

{

    要执行的代码;

}


$i=1;
while($i<=5){
    echo "The number is " . $i . "<br>";
    $i++;
}


or 


do{
    要执行的代码;
}while (条件);


PHP 循环 - For 循环


for (初始值; 条件; 增量){
    要执行的代码;
}

<?php
for ($i=1; $i<=5; $i++){
    echo "The number is " . $i . "<br>";
}
?>



foreach ($array as $value){
    要执行代码;
}


<?php$x=array("one","two","three");
foreach ($x as $value){
    echo $value . "<br>";
}?>



PHP 内建函数

https://www.runoob.com/php/php-ref-array.html


创建 PHP 函数

函数是通过调用函数来执行的。

语法

<?php

    function functionName(){   

     // 要执行的代码

    }

?>




PHP 魔术常量

PHP 向它运行的任何脚本提供了大量的预定义常量。

不过很多常量都是由不同的扩展库定义的,只有在加载了这些扩展库时才会出现,或者动态加载后,或者在编译时已经包括进去了。

有八个魔术常量它们的值随着它们在代码中的位置改变而改变。

例如 __LINE__ 的值就依赖于它在脚本中所处的行来决定。这些特殊的常量不区分大小写,如下:


__LINE__

文件中的当前行号。

实例

<?php

echo '这是第 " '  . __LINE__ . ' " 行';

?>

以上实例输出结果为:

这是第 “ 2 ” 行

__FILE__

文件的完整路径和文件名。如果用在被包含文件中,则返回被包含的文件名。

自 PHP 4.0.2 起,__FILE__ 总是包含一个绝对路径(如果是符号连接,则是解析后的绝对路径),而在此之前的版本有时会包含一个相对路径。

实例:

实例

<?php

echo '该文件位于 " '  . __FILE__ . ' " ';

?>

以上实例输出结果为:

该文件位于 “ E:\wamp\www\test\index.php ”

__DIR__

文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。

它等价于 dirname(__FILE__)。除非是根目录,否则目录中名不包括末尾的斜杠。(PHP 5.3.0中新增)

实例

<?php

echo '该文件位于 " '  . __DIR__ . ' " ';

?>

以上实例输出结果为:

该文件位于 “ E:\wamp\www\test ”

__FUNCTION__

函数名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。

实例

<?php

function test() {    echo  '函数名为:' . __FUNCTION__ ;}test();

?>

以上实例输出结果为:

函数名为:test

__CLASS__

类的名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该类被定义时的名字(区分大小写)。

在 PHP 4 中该值总是小写字母的。类名包括其被声明的作用区域(例如 Foo\Bar)。注意自 PHP 5.4 起 __CLASS__ 对 trait 也起作用。当用在 trait 方法中时,__CLASS__ 是调用 trait 方法的类的名字。

实例

<?php

    class test {    

        function _print() {        

            echo '类名为:'  . __CLASS__ . "<br>";        

            echo  '函数名为:' . __FUNCTION__ ;    

        }

    }

    $t = new test();

    $t->_print();

?>

以上实例输出结果为:

类名为:test函数名为:_print

__TRAIT__

Trait 的名字(PHP 5.4.0 新加)。自 PHP 5.4.0 起,PHP 实现了代码复用的一个方法,称为 traits。

Trait 名包括其被声明的作用区域(例如 Foo\Bar)。

从基类继承的成员被插入的 SayWorld Trait 中的 MyHelloWorld 方法所覆盖。其行为 MyHelloWorld 类中定义的方法一致。优先顺序是当前类中的方法会覆盖 trait 方法,而 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();

?>

以上例程会输出:

Hello World!

__METHOD__

类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。

实例:

实例

<?php

function test() {    echo  '函数名为:' . __METHOD__ ;}

test();

?>

以上实例输出结果为:

函数名为:test

__NAMESPACE__

当前命名空间的名称(区分大小写)。此常量是在编译时定义的(PHP 5.3.0 新增)。

实例:

实例

<?php

    namespace MyProject

    echo '命名空间为:"', __NAMESPACE__, '"';     // 输出 "MyProject"

?>

以上实例输出结果为:

命名空间为:"MyProject"




PHP 命名空间(namespace)

https://www.runoob.com/php/php-namespace.html


PHP 命名空间(namespace)是在PHP 5.3中加入的,如果你学过C#和Java,那命名空间就不算什么新事物。 不过在PHP当中还是有着相当重要的意义。

PHP 命名空间可以解决以下两类问题:

  1. 用户编写的代码与PHP内部的类/函数/常量或第三方类/函数/常量之间的名字冲突。

  2. 为很长的标识符名称(通常是为了缓解第一类问题而定义的)创建一个别名(或简短)的名称,提高源代码的可读性。


PHP 面向对象


https://www.runoob.com/php/php-oop.html


在面向对象的程序设计(英语:Object-oriented programming,缩写:OOP)中,对象是一个由信息及对信息进行处理的描述所组成的整体,是对现实世界的抽象。

在现实世界里我们所面对的事情都是对象,如计算机、电视机、自行车等。

对象的主要三个特性:

比如 Animal(动物) 是一个抽象类,我们可以具体到一只狗跟一只羊,而狗跟羊就是具体的对象,他们有颜色属性,可以写,可以跑等行为状态。



下一篇:《时间分配 & 学习核心》