常见问题

如何共享session

php代码解释过程

  1. Scanning(Lexing) ,将PHP代码转换为语言片段(Tokens)

  2. Parsing, 将Tokens转换成简单而有意义的表达式

  3. Compilation, 将表达式编译成Opocdes

  4. Execution, 顺次执行Opcodes,每次一条,从而实现PHP脚本的功能。

对象清晰用对象,否则用函数(无状态)。

PHP的回收机制?

base64图片上传

$tmp = explode('base64,',$pic);
$file = str_replace(array('-', '_'), array('+', '/'), $tmp[1]);

echo(),print(),print_r()的区别?

echo是PHP语句, print和print_r是函数,语句没有返回值,函数可以有返回值(即便没有用) print()只能打印出简单类型变量的值(如int,string) print_r()可以打印出复杂类型变量的值(如数组,对象) echo 输出一个或者多个字符串

浮点数注意点

1、浮点数写出来就是错的 2、一定要运算、比较就用bcmatch库 http://php.net/manual/zh/ref.bc.php

语句include和require的区别是什么?

include 产生一个 warning ,而 require 直接产生错误中断; require 在运行前载入; include 在运行时载入; require_once 和 include_once 可以避免重复包含同一文件。

一些php魔术方法

__construct() 实例化类时自动调用。 __destruct() 类对象使用结束时自动调用。 __set() 在给未定义的属性赋值的时候调用。 __get() 调用未定义的属性时候调用。 __isset() 使用isset()或empty()函数时候会调用。 __unset() 使用unset()时候会调用。 __sleep() 使用serialize序列化时候调用。 __wakeup() 使用unserialize反序列化的时候调用。 __call() 调用一个不存在的方法的时候调用。 __callStatic()调用一个不存在的静态方法是调用。 __toString() 把对象转换成字符串的时候会调用。比如 echo。 __invoke() 当尝试把对象当方法调用时调用。 __set_state() 当使用var_export()函数时候调用。接受一个数组参数。 __clone() 当使用clone复制一个对象时候调用。

php中empty()和isset()的区别

isset 用于检测变量是否被设置,使用 isset() 测试一个被设置成 NULL 的变量,将返回 FALSE 。 empty 如果 var 是非空或非零的值,则 empty() 返回 FALSE。换句话说,""、0、"0"、NULL、FALSE、array()、var $var; 以及没有任何属性的对象都将被认为是空的,如果 var 为空,则返回 TRUE 。

如果变量为 0 ,则empty()会返回TRUE,isset()会返回TRUE; 如果变量为空字符串,则empty()会返回TRUE,isset()会返回TRUE; 如果变量未定义,则empty()会返回TRUE,isset()会返回FLASE。

MySQL、PHP按周统计数据跨年问题(oW %x%v)

http://xmyl.me/archives/148.html

Last updated