php读书笔记

1. ./configure --help  命令了解 PHP 所有可用的编译选项及简短解释

2.heredoc

3.PHP_EOL 换行

4.array:key 可以是 integer 或者 string。value 可以是任意类型

5.var_dump,echo,print_r 都是输出的意思

$juices = array("apple", "orange", "koolaid1" => "purple");
var_dump($juices["koolaid1"]);
print_r($juices["koolaid1"]);
echo $juices[1].PHP_EOL;echo $juices[1];echo $juices[1];
<pre name="code" class="php">echo "=======";echo $juices;echo "======".PHP_EOL;
var_dump($juices);
print_r($juices);


 输出结果: 

string(6) "purple"purpleorangeorangeorange=======Array======array(3) {  [0]=>  string(5) "apple"  [1]=>  string(6) "orange"  ["koolaid1"]=>  string(6) "purple"}Array(    [0] => apple    [1] => orange    [koolaid1] => purple)

可见(1)var_dump可以自动换行,print_r不可以,echo不可以;(2)echo可以在后面添加.PHP_EOL表示换行;(3)echo不可以输出数组

6.global

PHP 的全局变量和 C 语言有一点点不同,在 C 语言中,全局变量在函数中自动生效,除非被局部变量覆盖。这可能引起一些问题,有些人可能不小心就改变了一个全局变量。PHP 中全局变量在函数中使用时必须声明为 global。

<?php
$a = "123";
$b = "456";
function func1()
{
    global $b;
    echo $a;
    echo $b;
}
func1();
输出结果:

456

7.static

变量 $a 仅在第一次调用 test() 函数时被初始化,之后每次调用 test() 函数都会输出 $a 的值并加一

function Test()
{
    static $a = 0;
    echo $a;
    $a++;
}
test();
test();
test();
test();
test();
test();
输出结果:012345

8.常量

define('MIN_VALUE', '0.0');   //Works OUTSIDE of a class definition.
define('MAX_VALUE', '1.0');   //Works OUTSIDE of a class definition.

const MIN_VALUE = 0.0;         //Works INSIDE of a class definition.
const MAX_VALUE = 1.0;       //Works INSIDE of a class definition.

9. 反引号 ``

注意这不是单引号!PHP 将尝试将反引号中的内容作为外壳命令来执行,并将其输出信息返回(即,可以赋给一个变量而不是简单地丢弃到标准输出)

10.字符串运算符

$a = "Hello ";
$b = $a . "World!"; // now $b contains "Hello World!"
$a = "Hello ";
$a .= "World!";     // now $a contains "Hello World!"
echo $a;
echo $b;


11. 自动生成注释:/ + ** +空格

12. 流程控制的代替语法::+end,如

<?php
if ($a == 5):
    echo "a equals 5";
    echo "...";
elseif ($a == 6):
    echo "a equals 6";
    echo "!!!";
else:
    echo "a is neither 5 nor 6";
endif;
?>

13. 在for循环中  for($i = 0; $i < sizeof($people); ++$i) 的效率低于for($i = 0, $size = sizeof($people); $i < $size; ++$i)

14. foreach遍历数组

foreach (array_expression as $value)
    statement
foreach (array_expression as $key => $value)
    statement

15. continue 接受一个可选的数字参数来决定跳过几重循环到循环结尾。默认值是 1,即跳到当前循环末尾

16. require 和 include 几乎完全一样,除了处理失败的方式不同之外。require 在出错时产生 E_COMPILE_ERROR 级别的错误。换句话说将导致脚本中止而 include 只产生警告(E_WARNING),脚本会继续运行

17. require_once 语句和 require 语句完全相同,唯一区别是 PHP 会检查该文件是否已经被包含过,如果是则不会再次包含

18. 如果省略了 return,则返回值为 NULL

19. $this 是访问非静态属性及方法。:: 是访问静态属性及方法和类常量

20. 可以把在类中始终保持不变的值定义为常量。在定义和使用常量的时候不需要使用 $ 符号 

const constant = 'constant value';
echo  self::constant . "\n";
21. 构造函数__construct,自 PHP 5.3.3 起,在命名空间中,与类名同名的方法不再作为构造函数

22. 任何一个类,如果它里面至少有一个方法是被声明为抽象的,那么这个类就必须被声明为抽象的。被定义为抽象的方法只是声明了其调用方式(参数),不能定义其具体的功能实现

23. PHP 将所有以 __(两个下划线)开头的类方法保留为魔术方法

24. PHP 5 新增了一个 final 关键字。如果父类中的方法被声明为 final,则子类无法覆盖该方法。如果一个类被声明为 final,则不能被继承                                                           

25. == 和 ===:当使用比较运算符(==)比较两个对象变量时,比较的原则是:如果两个对象的属性和属性值 都相等,而且两个对象是同一个类的实例,那么这两个对象变量相等。
而如果使用全等运算符(===),这两个对象变量一定要指向某个类的同一个实例(即同一个对象)

26. 在声明命名空间之前唯一合法的代码是用于定义源文件编码方式的 declare 语句。另外,所有非 PHP 代码包括空白符都不能出现在命名空间的声明之前                                                                                                                                                                                                                                                                                                                
27.截取字符串

$shortCode = end(explode('/', “ffff/12333/4556/44566”));  //这样的结果是取出 “44566”








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值