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

Souleigh ✨ 等级 682 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 的引用

收藏
评论区

相关推荐

PHP程序员必须会的 45 个PHP 面试题(第二部分)
Q20: require\_once 和 require 在什么场景下使用? Topic: PHP Difficulty: ⭐⭐⭐ require\_once() 作用与 require() 的作用是一样的,都是引用或包含外部的一个 php 文件,require\_once() 引入文件时会检查文件是否已包含,如果已包含,不再包含 (requir
PHP基础之输出缓冲区基本概念、原理分析
一、概念 在PHP运行的过程中,可以将会产生输出的函数或操作结果暂时保存在PHP的缓冲区,只有当缓冲区满了、或者PHP运行完毕、或者在必要时候进行输出,才会将数据输出到浏览器,此缓冲数据的区域称为PHP的输出缓冲区(OB)。 二、原理 ①使用了缓冲区之后,当执行PHP的时候,如果碰到了echo、print\_r之类的会输出数据的代码(实际上许多函数都会
thinphp php 七牛云sdk 图片上传
安装 七牛云sdk 图片上传 ============== 在项目根目录下php composer.phar require qiniu/php-sdk,或者composer require qiniu/php-sdk等待即可完成。 > 在vendor 下可以看到qiniu目录 在七牛云账号设置里面找到自己的ak和sdk ------
LNMP架构中常见的502错误
**1.配置错误** 因为nginx找不到php-fpm了,所以报错,一般是fastcgi\_pass后面的路径配置错误了,后面可以是socket或者是ip:port **2.资源耗尽** lnmp架构在处理php时,nginx直接调取后端的php-fpm服务,如果nginx的请求量偏高,我们又没有给php-fpm配置足够的子进程,那
CentOS 7下搭建MediaWiki环境
一、安装php、httpd和mariadb [root@dellnode1 ~]# yum install -y mariadb-server mariadb httpd 导入php的repo源: rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
Centos配置nginx+php
添加第三方源: yum install epel-release 安装nginx: yum install nginx 安装php: yum install php php-fpm php-mbstring php-mysql php-gd php-fastcgi php-cgi 安装redis: yum ins
Discuz x2.5 单页制作的教程
_首先,单页包括该单页的php文件和该单页的模板(.htm)文件,比如:host.php、host.htm_ __单页的php文件内容如下:__ <?php require './source/class/class_core.php';//引入系统核心文件 $discuz = & discuz_core::instan
Kafka学习之(三)Centos下给PHP开启Kafka扩展(rdkafka)
Centos版本:Centos6.4,PHP版本:PHP7。 在上一篇文章中使用IP为192.168.9.154的机器安装并开启了Kafka进行了简单测试,充当了Kafka服务器。 本篇文章新开启一台IP为192.16.9.157的机器给PHP开启扩展。 找到github的扩展下载地址,这里是php-rdkafka,虽然php有一个扩展是php-kaf
LNMP架构之php
本文索引: * php-fpm的进程pool设置 * php-fpm慢执行日志 * open\_basedir参数设置 * php-fpm进程管理 * * * ### php-fpm的pool php-fpm.conf可以设置多个pool,在其中一个pool资源耗尽,会导致其他站点无法访问资源,报502错误。有必要把站点进行分离,分别
Larave
作者 -- 本文由 张舫 童鞋投稿 > 同时也欢迎更多的小伙伴投稿 开发需求 ---- PHP >= 7.0.0OpenSSL PHP ExtensionPDO PHP ExtensionMbstring PHP ExtensionTokenizer PHP ExtensionXML PHP ExtensionApache/NginxMySQ
Linux下php安装Redis扩展
1 安装redis /usr/local/php/bin/phpize #用phpize生成configure配置文件 ./configure --with-php-config=/usr/local/php/bin/php-config #配置 1 make #编译 2 make install #安装
Linux基础(day42)
11.14/11.15 Apache和PHP结合 ======================== 配置httpd支持php目录概要 ---------------- * httpd主配置文件/usr/local/apache2.4/conf/httpd.conf * vim /usr/local/apache2.4/conf/httpd.con
Mac自带PHP启动php
Mac 自带 php-fpm,在终端执行 php-fpm,会报如下错误: `ERROR: failed to open configuration file '/private/etc/php-fpm.conf': No such file or directory (2) ERROR: failed to load configuration file
PHP中使用Elasticsearch
PHP中使用Elasticsearch composer require elasticsearch/elasticsearch 会自动加载合适的版本!我的php是5.6的,它会自动加载5.3的elasticsearch版本! Using version ^5.3 for elasticsearch/ela
PHP配置优化:php
> PHP-FPM是一个PHP FastCGI管理器,php-fpm.conf配置文件用于控制PHP-FPM管理进程的相关参数,比如工作子进程的数量、运行权限、监听端口、慢请求等等。 我们在编译安装PHP的时,在./configure的时候带 –enable-fpm参数即可开启PHP-FPM。PHP-FPM配置文件为 php-fpm.conf,其语法类似 p