加入收藏 | 设为首页 | 会员中心 | 我要投稿 三明站长网 (https://www.0598zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > 交互 > 正文

PHP程序员必须会的 45 个PHP 面试题

发布时间:2020-12-25 15:26:38 所属栏目:交互 来源:网络整理
导读:副标题#e# Q1: == 和 === 之间有什么区别? 话题:?PHP 困难: ? 如果是两个不同的类型,运算符? == ?则在两个不同的类型之间进行强制转换 === ?操作符执行’ 类型安全比较 ‘ 这意味着只有当两个操作数具有相同的类型和相同的值时,它才会返回 TRUE。 1 ===

  

  • 可以在网页任何地方输出数据,然后使用 JavaScript 从 DOM 中获取信息.
<div id="dom-target" style="display: none;">
    <?php
        $output = "42"; // 此外,做一些操作,获得 output.
        echo htmlspecialchars($output); /* 你必须避免特殊字符,不然结果将是无效HTML。 */
    ?>
</div>
<script>
    var div = document.getElementById("dom-target");
    var myData = div.textContent;
</script>

  

  • 直接在 JavaScript 代码中 echo 数据。
<script>
    var data = <?php echo json_encode("42",JSON_HEX_TAG); ?>; // Don't forget the extra semicolon!
</script>

  

Q23: 有一个方法可以复制一个 PHP 数组至另一个数组吗?

Topic:?PHP
Difficulty: ???
PHP 数组通过复制进行赋值,而对象通过引用进行赋值。所有默认情况下,PHP 将复制这个数组。这里有一个 PHP 参考,一目了然:
$a = array(1,2);
$b = $a; // $b 是一个不同的数组
$c = &$a; // $c 是 $a 的引用

  



Q25:此代码将返回什么?解释结果。

主题:PHP
难度:???

考虑代码。结果将返回什么?

$something = 0;
echo ('password123' == $something) ? 'true' : 'false';

  

答案是true。您永远不要将其==用于字符串比较。即使将字符串与字符串进行比较,PHP也会将它们隐式转换为浮点数,并且如果它们看起来是数字,则进行数字比较。===还可以

例如

'1e3' == '1000' // true

  

也返回true。

Q26:array_map,array_walk和array_filter之间到底有什么区别?

主题:PHP
难度:???
  • array_walk?接受一个数组和一个函数F,并通过用F(x)替换每个元素x对其进行修改。
  • array_map进行完全相同的操作,除了不代替就地修改,而是返回带有转换后元素的新数组。
  • array_filter使用函数F,而不是变换元素,将删除F(x)不为真的所有元素

Q27:解释exec()与system()与passthru()之间的区别?

主题:PHP?难度:???
  • exec() 用于调用系统命令,也许自己处理输出。
  • system() 用于执行系统命令并立即显示输出-大概是文本。
  • passthru() 用于执行您希望从中返回原始值的系统命令-大概是二进制文件。

Q28:您将如何使用PHP创建Singleton类?

主题:PHP
难度:???
/**
 * Singleton class
 *
 */
final class UserFactory {
    /**
     * Call this method to get singleton
     *
     * @return UserFactory
     */
    public static
    function Instance() {
        static $inst = null;
        if ($inst === null) {
            $inst = new UserFactory();
        }
        return $inst;
    }

    /**
     * Private ctor so nobody else can instantiate it
     *
     */
    private
    function __construct() {

    }
}

  

使用方法:

$fact = UserFactory::Instance();
$fact2 = UserFactory::Instance();

  

但:

$fact = new UserFactory()

  

引发错误。

Q29:PDO的query()与execute()有什么区别?

主题:PHP
难度:???
  • query?运行标准SQL语句,并要求您正确转义所有数据,以避免SQL注入和其他问题。
  • execute运行一个准备好的语句,该语句使您可以绑定参数,以避免需要转义或引用参数。如果多次重复查询,execute也将表现更好。

最佳实践是坚持准备好的语句并执行以提高安全性。除了在客户端提供转义功能外,准备好的语句在服务器端也会编译一次,然后可以在每次执行时传递不同的参数。

问题30:空合并运算符的用途是什么?

主题:PHP
难度:???

空合并运算符如果存在且不为NULL,则返回其第一个操作数。否则,它将返回其第二个操作数。

例:

$name = $firstName ?? $username ?? $placeholder ?? "Guest"; 

  

Q31:区分异常和错误

主题:PHP
难度:???
  • Error无法从中恢复。错误的唯一解决方案是终止执行。Exception通过使用try-catch块或将异常抛出给调用者,您可以从中恢复
  • 您将无法处理Errors使用try-catch块。即使您使用try-catch块处理它们,如果它们发生,您的应用程序也将无法恢复。另一方面,Exceptions可以使用try-catch块进行处理,并且可以使程序流程正常(如果发生)。
  • ExceptionsErrors运行应用程序的环境有关的应用程序有关。

Q32:什么是异常类函数?

主题:PHP
难度:???

(编辑:三明站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读