php语言

PHP程序员基本知识点

时间:2024-08-16 04:15:33 php语言 我要投稿
  • 相关推荐

PHP程序员基本知识点

  PHP程序员有哪些必备知识点?下面是百分网小编精心为大家整理的PHP程序员的基本知识点,希望对大家有帮助,更多内容请关注应届毕业生网!

PHP程序员基本知识点

  1.1 HTTP协议中几个状态码的含义:503 500 401 403 404 200 301 302。。。

  200 : 请求成功,请求的数据随之返回。

  301 : 永久性重定向。

  302 : 暂时行重定向。

  401 : 当前请求需要用户验证。

  403 : 服务器拒绝执行请求,即没有权限。

  404 : 请求失败,请求的数据在服务器上未发现。

  500 : 服务器错误。一般服务器端程序执行错误。

  503 : 服务器临时维护或过载。这个状态时临时性的。

  1.2 Include require include_once require_once 的区别.

  处理失败方式不同:

  require 失败时会产生一个致命级别错误,并停止程序运行。

  include 失败时只产生一个警告级别错误,程序继续运行。

  include_once/require_once和include/require 处理错误方式一样,

  唯一区别在于当所包含的文件代码已经存在时候,不在包含。

  1.3 PHP/Mysql中几个版本的进化史,比如mysql4.0到4.1,PHP 4.x到5.1的重大改进等等。

  1.4 HEREDOC介绍

  一种定义字符串的方法。

  结构:

  <<<。在该提示符后面,要定义个标识符(单独一行),

  然后是一个新行。接下来是字符串 本身,

  最后要用前面定义的标识符作为结束标志(单独一行)

  注意:

  标识符的命名也要像其它标签一样遵守PHP的规则:

  只能包含字母、数字和下划线,并且必须以字母和下划线作为开头

  1.5 写出一些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复制一个对象时候调用。

  1.6 一些编译php时的configure 参数

  –prefix=/usr/local/php php安装目录

  –with-config-file-path=/usr/local/php/etc 指定php.ini位置

  –with-mysql=/usr/local/mysql mysql安装目录,对mysql的支持

  –with-mysqli=/usr/local/mysql/bin/mysql_config mysqli文件目录,优化支持

  –enable-safe-mode 打开安全模式

  –enable-ftp 打开ftp的支持

  –enable-zip 打开对zip的支持

  –with-bz2 打开对bz2文件的支持

  –with-jpeg-dir 打开对jpeg图片的支持

  –with-png-dir 打开对png图片的支持

  –with-freetype-dir 打开对freetype字体库的支持

  –without-iconv关闭iconv函数,种字符集间的转换

  –with-libxml-dir 打开libxml2库的支持

  –with-xmlrpc 打开xml-rpc的c语言

  –with-zlib-dir 打开zlib库的支持

  –with-gd 打开gd库的支持

  更多可以使用 ./configure help 查看

  1.7 向php传入参数的三种方法。

  方法一 使用$argc $argv

  方法二 使用getopt函数()

  方法三 提示用户输入,然后获取输入的参数。有点像C语言

  1.8 (mysql)请写出数据类型(int char varchar datetime text)的意思; 请问varchar和char有什么区别;

  int : 数值类型

  char : 固定长度字符串类型

  varchar : 可变长度字符串类型

  datetime : 时期时间类型

  text : 文本类型

  varchar和char有什么区别:

  a. char 长度是固定的,不管你存储的数据是多少他都会都固定的长度。

  而varchar则处可变长度但他要在总长度上加1字符,这个用来存储位置。

  b. char 固定长度,所以在处理速度上要比varchar快速很多,但是浪费存储空间,

  所以对存储不大,但在速度上有要求的可以使用char类型,反之可以用varchar类型来实例。

  1.9 error_reporting 等调试函数使用

  error_reporting() 函数能够在运行时设置php.ini中 error_reporting 指令。

  所以可以再程序中随时调节显示的错误级别。

  使用此函数时 display_errors必须是打开状态。

  1.10 您是否用过版本控制软件? 如果有您用的版本控制软件的名字是?

  1.11 posix和perl标准的正则表达式区别;

  1.12 Safe_mode 打开后哪些地方受限.

  启动safe_mode,会对许多PHP函数进行限制,特别是和系统相关的文件打开、命令执行等函数.

  所有操作文件的函数将只能操作与脚本UID相同的文件.

  1.13 写代码来解决多进程/线程同时读写一个文件的问题。

  PHP是不支持多线程的,可以使用php的flock加锁函数实现。

  $fp = fopen("/tmp/lock.txt", "w+");

  if (flock($fp, LOCK_EX)) { // 进行排它型锁定

  fwrite($fp, "Write something here\n");

  flock($fp, LOCK_UN); // 释放锁定

  } else {

  echo "Couldn't lock the file !";

  }

  fclose($fp);

  1.14 写一段上传文件的代码。

  upload.html

  Send this file:

  upload.php

  $uploads_dir = '/uploads';

  foreach ($_FILES["error"] as $key => $error) {

  if ($error == UPLOAD_ERR_OK) {

  $tmp_name = $_FILES["tmp_name"][$key];

  $name = $_FILES["name"][$key];

  move_uploaded_file($tmp_name, "$uploads_dir/$name");

  }

  }

  1.15 Mysql 的存储引擎,myisam和innodb的区别。

  a. MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持.

  b. MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快.

  c. InnoDB不支持FULLTEXT类型的索引.

  d. InnoDB 中不保存表的具体行数,也就是说,

  执行select count(*) from table时,InnoDB要扫描一遍整个表来计算有多少行,

  但是MyISAM只要简单的读出保存好的行数即可.

  e. 对于AUTO_INCREMENT类型的字段,InnoDB中必须包含只有该字段的索引,但是在MyISAM表中,可以和其他字段一起建立联合索引。

  f. DELETE FROM table时,InnoDB不会重新建立表,而是一行一行的删除。

  g. LOAD TABLE FROM MASTER操作对InnoDB是不起作用的,解决方法是首先把InnoDB表改成MyISAM表,导入数据后再改成InnoDB表,

  但是对于使用的额外的InnoDB特性(例如外键)的表不适用.

  h. MyISAM支持表锁,InnoDB支持行锁。

【PHP程序员基本知识点】相关文章:

PHP编程入门的基本语法知识点总结06-22

PHP的基本作用09-25

PHP基本语法06-30

php程序员11-01

PHP程序员掌握基本概念有哪些技术06-07

PHP基本语法大全10-18

PHP的基本语法介绍07-31

关于PHP基本语法总结11-04

php关于PHP上传入门学习知识点07-20

php面试备考知识点08-04