PHP程序员必须会的 45 个PHP 面试题(第二部分)

Souleigh ✨ 等级 168 0 0

Q20: require_once 和 require 在什么场景下使用?

Topic: PHP
Difficulty: ⭐⭐⭐

require\_once() 作用与 require() 的作用是一样的,都是引用或包含外部的一个 php 文件,require\_once() 引入文件时会检查文件是否已包含,如果已包含,不再包含 (require) 它。

我建议在 99.9% 的时候要使用require_once

使用requireinclude意味着您的代码不可在其他地方重用,即您要拉入的脚本实际上是在执行代码,而不是提供类或某些函数库。

Q21: 判断 PHP 数组是否是关联数组

Topic: PHP
Difficulty: ⭐⭐⭐

思考:

function has_string_keys(array $array) {
  return count(array_filter(array_keys($array), 'is_string')) > 0;
} 

如果$array至少有一个字符串类型的 key ,它将被视为关联数组。

Q22: 如何将变量和数据从 PHP 传至 Javascript

Topic: PHP
Difficulty: ⭐⭐⭐

这里有几种实现方法:

  • 使用 Ajax 从服务端获取你需要的数据。

思考get-data.php

echo json_encode(42);

思考index.html:

<script>
    function reqListener () {
      console.log(this.responseText);
    }

    var oReq = new XMLHttpRequest(); // new 一个请求对象
    oReq.onload = function() {
        // 在这里你可以操作响应数据
        // 真实的数据来自 this.responseText
        alert(this.responseText); // 将提示: 42
    };
    oReq.open("get", "get-data.php", true);
    //                               ^ 不要阻塞的其余部分执行。
    //                                 不要等到请求结束再继续。
    oReq.send();
</script>
  • 可以在网页任何地方输出数据,然后使用 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 的引用

预览图
收藏
评论区