Q20: require_once 和 require 在什么场景下使用?
Topic: PHP
Difficulty: ⭐⭐⭐
require\_once()
作用与 require()
的作用是一样的,都是引用或包含外部的一个 php 文件,require\_once()
引入文件时会检查文件是否已包含,如果已包含,不再包含 (require
) 它。
我建议在 99.9% 的时候要使用require_once
使用require
或include
意味着您的代码不可在其他地方重用,即您要拉入的脚本实际上是在执行代码,而不是提供类或某些函数库。
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 的引用