Heim  >  Artikel  >  Backend-Entwicklung  >  php程序员面试题及答案(简单型)

php程序员面试题及答案(简单型)

WBOY
WBOYOriginal
2016-07-25 08:59:24887Durchsuche
  1. function strrev($str)
  2. {
  3. $len=strlen($str);
  4. $newstr = ' ';
  5. for($i=$len;$i> =0;$i--)
  6. {
  7. $newstr .= $str{$i};
  8. }
  9. return $newstr;
  10. }
复制代码

7、数据库相关 (1).数据库设计方面,这是DBA和Architect的责任,设计结构良好的数据库,必要的时候,去正规化(英文是这个:denormalize,中文翻译成啥我不知道),允许部分数据冗余,避免JOIN操作,以提高查询效率

(2).系统架构设计方面,表散列,把海量数据散列到几个不同的表里面.快慢表,快表只留最新数据,慢表是历史存档.集群,主服务器Read & write,从服务器read only,或者N台服务器,各机器互为Master (3).(1)和(2)超越PHP Programmer的要求了,会更好,不会没关系.检查有没有少加索引 (4).写高效的SQL语句,看看有没有写低效的SQL语句,比如生成笛卡尔积的全连接啊,大量的Group By和order by,没有limit等等.必要的时候,把数据库逻辑封装到DBMS端的存储过程里面.缓存查询结果,explain每一个sql语句 (5).所得皆必须,只从数据库取必需的数据,比如查询某篇文章的评论数,select count(*) ... where article_id = ? 就可以了,不要先select * ... where article_id = ?然后msql_num_rows. 只传送必须的SQL语句,比如修改文章的时候,如果用户只修改了标题,那就update ... set title = ? where article_id = ?不要set content = ?(大文本) (6).必要的时候用不同的存储引擎.比如InnoDB可以减少死锁.HEAP可以提高一个数量级的查询速度.

8.如同是个编程语言都会有答应Hello World的例子一样,是本数据库的教材都会讲A给B的账户转账50美元的例子,回答这个就好了.不过据我所知,用MySQL的企业,很少用MySQL来实现事务处理.何况现在Oracle收购了InnoDB的公司.

9.参见第七题的答案,那个地方搞好了这个问题就迎刃而解了.

10.网上流传的用正则匹配中文字符然后截取的函数,其实,有非常简单的解决方法:mb_substr()。程序员之家,提供了相关解决方法,请参考: php截取中文字符串乱码如何解决呢 php字符串截取(substr的应用与扩展) php截取中文字符串的二个函数(iconv_substr和mb_substr) php 字符串截取函数(可以自动清除网页标签) php截取中文字符(utf-8格式)的函数 php中文字符串截取函数支持多种编码 四个php中文字符串截取函数 php中文字符串截取 php截取中文字符串的代码 php中文字符串截取 php截取中文字符串的函数 php中文字符串截取(mb_substr)实例 php计算中文字符串长度、截取中文字符串的函数 解决php截取utf-8中文字符串时乱码的问题 截取中文字符的函数-csubstr PHP中文字符串截取函数



Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn