PHP备忘

来源:互联网 发布:linux最新系统下载 编辑:程序博客网 时间:2024/06/08 12:03

1. 单引号,双引号

当双引号中包含变量时,变量会与双引号中的内容连接在一起;
当单引号中包含变量时,变量会被当做字符串输出。

<?php     $world= "world";     $str1 = "Hello, $world";  //Hello, world    $str2 = 'Hello, $world';  //Hello, $world    echo $str1;    echo "<br />";    echo $str2;?>

2. 常量如何取值

获取常量值的有两种方法取值。
第一种是使用常量名直接获取值;例如计算圆周率的面积,如下:

<?php    define("PI",3.14);    $r=1;    $area = PI*$r*$r; //计算圆的面积?>

第二种是使用constant()函数。它和直接使用常量名输出的效果是一样的,但函数可以动态的输出不同的常量,在使用上要灵活、方便,其语法格式如下:

    mixed constant(string constant_name)

第一个参数constant_name为要获取常量的名称,也可为存储常量名的变量。如果成功则返回常量的值,失败则提示错误信息常量没有被定义。(注:mixed表示函数返回值类型为多种不同的类型,string表示参数类型为字符串类型)

<?php     $p="";    //定义圆周率的两种取值    define("PI1",3.14);    define("PI2",3.142);    //定义值的精度    $height = "中";    //根据精度返回常量名,将常量变成了一个可变的常量    if($height == "中"){        $p = "PI1";    }else if($height == "低"){        $p = "PI2";    }    $r=1;    $area = constant($p)*$r*$r;    echo $area;?>

3. PHP引用(&)

在 PHP 中引用意味着用不同的名字访问同一个变量内容。这并不像 C 的指针:例如你不能对他们做指针运算,他们并不是实际的内存地址。

详细文章:PHP引用(&)使用详解、PHP手册


4. 魔术变量

__CLASS__       //返回类的名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该类被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。__DIR__         //文件所在的目录。如果用在被包括文件中,则返回被包括的文件所在的目录。__FILE__        //返回文件的完整路径和文件名。如果用在包含文件中,则返回包含文件名。自 PHP 4.0.2 起,__FILE__ 总是包含一个绝对路径,而在此之前的版本有时会包含一个相对路径。__FUNCTION__    //返回函数名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)。在 PHP 4 中该值总是小写字母的。__LINE__        //返回文件中的当前行号。__NAMESPACE__   //当前命名空间的名称(区分大小写)。此常量是在编译时定义的(PHP 5.3.0 新增)。__METHOD__      //返回类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。__STATIC__      //当你调用class的静态方法时,返回class名称,区分大小写。如果在继承中调用的话,不管在继承中有没有定义,都能返回继承的class名。

5. 魔术函数

  __construct()   //实例化对象时被调用,当__construct和以类名为函数名的函数同时存在时,__construct将被调用,另一个不被调用。  __destruct()    //当删除一个对象或对象操作终止时被调用。  __call()      //对象调用某个方法,若方法存在,则直接调用;若不存在,则会去调用__call函数。  __get()        //读取一个对象的属性时,若属性存在,则直接返回属性值;若不存在,则会调用__get函数。  __set()        //设置一个对象的属性时,若属性存在,则直接赋值;若不存在,则会调用__set函数。  __toString()    //打印一个对象的时被调用。如echo $obj;或print $obj;  __clone()       //克隆对象时被调用。如:$t=new Test();$t1=clone $t;  __sleep()       //serialize之前被调用。若对象比较大,想删减一点东东再序列化,可考虑一下此函数。  __wakeup()       //unserialize时被调用,做些对象的初始化工作。  __isset()       //检测一个对象的属性是否存在时被调用。如:isset($c->name)。  __unset()      //unset一个对象的属性时被调用。如:unset($c->name)。  __set_state()   //调用var_export时,被调用。用__set_state的返回值做为var_export的返回值。  __autoload()    //实例化一个对象时,如果对应的类不存在,则该方法被调用。

6. Session和Cookie的区别

PHP中cookie和session的区别实例分析


7. Apache和Nginx的区别

Nginx 和 Apache 各有什么优缺点
Nginx实践一:centos apache更换为nginx


8. PHP命名空间

详细文章:PHP命名空间、命名空间概述


9. fastcgi与php-fpm的关系

详细文章:搞不清FastCgi与PHP-fpm之间是个什么样的关系、什么是CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI?


10. 类的静态属性、静态方法

静态属性 静态方法 a)不需要实例化能够使用 是 是 b)访问方式 在静态属性和方法的名称前加上操作符”self::” “self::”、实例化后”->” c)可以通过“->”操作符访问 否 是

a)静态属性和静态方法不需要在类被实例化的情况下可以直接使用,不是静态的则一定得实例化类;
b)可以通过在该静态属性和方法的名称前加上操作符”self::”,实现在同一类的成员方法中访问静态属性和方法;
c)静态属性不可以由实例化的对象通过 -> 操作符来访问(但静态方法可以);
d)静态在读到这个类或者引入这个类文件的时候,就已经实例化并存放到内存中了,非静态类则需要new一下。

详细文章:类和对象:静态属性、静态方法、Static(静态)关键字


11. 类方法里->和::的区别

-> :: a)需要实例化才能使用 是 否 b)能访问静态属性 否 是 b)能访问静态方法 是(需要实例化) 是

详细文章:PHP中调用类方法时->和::的区别是什么?


12. self、this的区别

self this 能在静态函数里使用 是 否 可访问的类变量和方法由 self:: $this-> (注意:PHP > 5.3 允许由 $this 使用静态变量,用 $this::$foo$this->foo 将仍然没有被定义,如果 $foo 是一个静态变量.) 需要一个实例对象 否 是

详细文章:PHP中self和this的用法区别


13. require、require_once和include、include_once的区别

require 的使用方法如 require(“file.php”); 。这个函数通常放在 PHP 程序的最前面,PHP 程序在执行前,就会先读入 require 所指定引入的文件,使它变成 PHP 程序网页的一部份。常用的函数,亦可以这个方法将它引入网页中。
include 使用方法如 include(“file.php”); 。这个函数一般是放在流程控制的处理部分中。PHP 程序网页在读到 include 的文件时,才将它读进来。这种方式,可以把程序执行时的流程简单化。
require_once()语句在脚本执行期间包括并运行指定文件。此行为和 require() 语句类似,唯一区别是如果该文件中的代码已经被包括了,则不会再次包括。
include_once()语句在脚本执行期间包括并运行指定文件。此行为和 include() 语句类似,唯一区别是如果该文件中的代码已经被包括了,则不会再次包括。如同此语句名字暗示的那样,只会包括一次。

详细文章:require(),include(),require_once()和include_once()之间的区别


14. Linux如何输出文件最后10行,PHP如何输出文件最后10行

Linux下,输出前十行可以用 head -10 文件名,输出后十行可以用 tail -10 文件名

// Linux:[root@localhost sendmail]# tail -n 10 sendmail.html                            <br>                            <a href="#">4</a>                        </td>                    </tr>                </table>            </td>        </tr>    </table></body></html>// PHP代码:exec("tail -n 10 sendmail.html", $output);echo "<pre>";var_dump($output);// 执行PHP代码[root@localhost sendmail]# /usr/bin/php do_queue.php<pre>array(10) {  [0]=>  string(32) "                            <br>"  [1]=>  string(45) "                            <a href="#">4</a>"  [2]=>  string(29) "                        </td>"  [3]=>  string(25) "                    </tr>"  [4]=>  string(24) "                </table>"  [5]=>  string(17) "            </td>"  [6]=>  string(13) "        </tr>"  [7]=>  string(12) "    </table>"  [8]=>  string(7) "</body>"  [9]=>  string(7) "</html>"}

15. 备忘函数

1)file_put_contents — 将一个字符串写入文件

$file  = 'log.php';//要写入文件的文件名(可以是任意文件名),如果文件不存在,将会创建一个$content = "第一次写入的内容\n";if($f  = file_put_contents($file, $content,FILE_APPEND)){  // 这个函数支持版本(PHP 5)    echo "写入成功。<br />";}

2)mb_strlen — 获取字符串的长度(多字节的字符被计为 1)

//strlen会把每个中文计数为3,因为每个中文占3个字节echo strlen("你好,世界!");  //输出18echo mb_strlen("你好,世界!");  //输出6

3)mb_substr — 获取字符串的部分

// string mb_substr ( string $str , int $start [, int $length = NULL [, string $encoding = mb_internal_encoding() ]] )// str: 从该 string 中提取子字符串。// start: str 中要使用的第一个字符的位置。// length: str 中要使用的最大字符数。 If omitted or NULL is passed, extract all characters to the end of the string.// encoding: encoding 参数为字符编码。如果省略,则使用内部字符编码。echo mb_substr("你好,世界!", 0, 4); //输出“你好,世”echo substr("你好,世界!", 0 ,4);    //你�

4)round — 获取字符串的部分

echo round(3.4);         // 3echo round(3.5);         // 4echo round(3.6);         // 4echo round(3.6, 0);      // 4echo round(1.95583, 2);  // 1.96echo round(1241757, -3); // 1242000echo round(5.045, 2);    // 5.05echo round(5.055, 2);    // 5.06

5)number_format — 获取字符串的部分

echo number_format(123456, 2, '.', '');     // 123456.00echo number_format(123456, 2, '.', ',');    // 123,456.00echo number_format(123456, 2, ',', ' ');    // 123 456,00
0 0
原创粉丝点击