PHP技術者認定

1,

【日本語文字のメール送信】 (2016年10月31日)
以下のコードは桃家タローさん宛てにメールを送るためのものである。コード内の[(1)]に入る正しいものを1つ次の記述の中から選択せよ。
ただし、PHPの言語設定や内部文字エンコーディングは環境に合わせて日本語で適切に動作するよう設定されているものとする。
<?php
$name = "桃家タロー";
$to = [(1)]($name) . "<php-taro@example.jp>";
$subject = "ご挨拶";
$message = "はじめまして、$name さん";
mb_send_mail($to, $subject, $message);
?>
1. iconv_substr
2. mb_convert_encoding
3. base64_encode
4. mb_encode_mimeheader
5. mb_ereg_replace

2,【日本語文字コードのエンコーディング変換】(2016年10月28日)

日本語文字コードのエンコーディング変換を行うために、正しいステートメントを1つ次の記述の中から選択せよ。
ただし、内部エンコーディングの文字列が代入された変数 $text をシフトJISで標準出力するものとする。

1. print mb_convert_encoding($text, 'SJIS');
2. print mb_detect_encoding($text, 'SJIS');
3. print mb_replace_encoding($text, 'SJIS');
4. print mb_substring($text, 'SJIS');
5. print mb_ereg_replace($text, 'SJIS');

3,問題 (2016年10月27日)
【オブジェクトの作成】
PHPで新しいオブジェクトの作成について、誤っているものを1つ次の記述の中から選択せよ。ただし、PHPの設定はデフォルト設定とする。
1. PHP5では $obj = & new MyClass; のように&オペレータを利用しても実質的に $obj = new MyClass; と変わらない。
2. PHPで新しいオブジェクトインスタンスの作成を行う際は、new 演算子を使用する。
3. 既存のオブジェクトからコピーを作成するにはclone演算子を使用する。
4. PHP5でも=(代入)演算子を用いてオブジェクトのコピーが作成できる。

4,問題 (2016年10月26日)

【オブジェクトの基本】
PHPのオブジェクトに関して、誤っているものを1つ次の記述の中から選択せよ。
1. クラスは、ある種のオブジェクトの変数と関数を記述するテンプレート(template :模板)または設計図のようなもので、 class で定義する。
2. メソッド(method :方法)はクラスの中で定義された関数のことで、method で定義する。
3. クラスの中で定義された変数のことをプロパティ(property:属性)と呼ぶ。
4. インスタンス(instance:实例)とはクラス定義から実体化されたオブジェクトの事でメソッドを使ってプロパティを操作できる。

5,【デバッグ作業について】(20161025)

デバッグの際に、ファイルが呼び出されたことを確認するため、そのファイルの先頭に一時的に追加することで、ファイル名を表示して処理を終わらせるのに有効なステートメント(【英】statement ;声明)を1つ次の記述の中から選択せよ。
1. print("Stop in: ". File()) ;
2. echo "Stop in: __FILE__");
3. die ("Stop in: " . __FILE__ );
4. die ("Stop in: " . File() );

6,【例外とエラー】 (2016年10月24日)

例外とエラーについて、正しいものを1つ次の記述の中から選択せよ。
1. 例外処理とエラー処理は同じエラー処理機構で組み合わせて利用する。
2. デフォルトの例外処理を置き換える事はできない。
3. エラー処理はユーザ定義のエラー処理に置き換える事ができる。
4. PHPの例外はネストすることが出来ない。

回答:

1,正解4

解説:1),iconv_substr(str ,offset, length, charset):iconv_substr() 截取字符串的部分
参数 charset 规定字符集
eg:echo iconv_substr($str,0,3),'<br/>';
echo iconv_substr($str,0,3,'utf-8');
2),mb_convert_encoding — 转换字符的编码
string mb_convert_encoding ( string $str , string $to_encoding [, mixed $from_encoding = mb_internal_encoding() ] )
将 string 类型 str 的字符编码从可选的 from_encoding 转换到 to_encoding。
eg:
/* 转换内部编码为 SJIS */
$str = mb_convert_encoding($str, "SJIS");
/* 将 EUC-JP 转换成 UTF-7 */
$str = mb_convert_encoding($str, "UTF-7", "EUC-JP");
/* 从 JIS, eucjp-win, sjis-win 中自动检测编码,并转换 str 到 UCS-2LE */
$str = mb_convert_encoding($str, "UCS-2LE", "JIS, eucjp-win, sjis-win");
/* "auto" 扩展成 "ASCII,JIS,UTF-8,EUC-JP,SJIS" */
$str = mb_convert_encoding($str, "EUC-JP", "auto");
3)
string base64_encode ( string $data )
使用 base64 对 data 进行编码。
设计此种编码是为了使二进制数据可以通过非纯 8-bit 的传输层传输,例如电子邮件的主体。
Base64-encoded 数据要比原始数据多占用 33% 左右的空间。
eg:
<?php
$str = 'This is an encoded string';
echo base64_encode($str);
?>->
以上例程会输出:
VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZw==

4)正解mb_send_mail()関数は、件名($subject)と本文($body)は自動的に適切な文字エンコーディング(ISO-2022-JP)に変換するが、宛先($to)やヘッダー(第4引数)は変換しない。このため、mb_encode_mimeheader()関数にてMIMEヘッダーエンコードを行う必要がある。

5)正则表达式替换函数,看例子

Exemple with preg_replace :

<?php $data = preg_replace("/[^A-Za-z0-9\.\-]/","",$data); ?> 
Exemple with mb_ereg_replace : 
<?php $data = mb_ereg_replace("[^A-Za-z0-9\.\-]","",$data); ?>

2,正解:1

mbstring拡張モジュールに含まれる、mb_convert_encoding()関数がマルチバイトに対応した文字コードのエンコーディング変換を行う。
ここでは、元の文字コードのエンコーディングはデフォルトの自動判別にしてあるが、実際には正しいエンコーディングを明示することが望ましい。

3正解:4

4)PHP5では=(代入演算子)でオブジェクトのコピーは作成できない。古いPHP5ではphp.iniの設定でPHP4と同じように=演算子でオブジェクトのコピーが作成されるオプションがあったが、デフォルト設定ではオブジェクトのハンドルがコピーされオブジェクトはコピーされない。

1) PHP5以降のPHPではオブジェクトがハンドルで扱われる。オブジェクト変数の参照を&オペレータで代入しても、オブジェクトをそのまま代入しても、結果的に同じオブジェクトを参照する。
2) new演算子は新しいオブジェクトを作成する。
3) clone演算子は既存のオブジェクトからコピーを作成する。

4,

○ 2. 正解です!
解説:
クラスの中のメソッドを定義するための関数を記述する場合も function を使う。

5,

注释:

PHP手册:die()Equivalent to exit()。
die()和exit()都是中止脚本执行函数;其实exit和die这两个名字指向的是同一个函数,die()是exit()函数的别名。该函数只接受一个参数,可以是一个程序返回的数值或是一个字符串,也可以不输入参数,结果没有返回值。
参考:虽然两者相同,但通常使用中也有细微的选择性。例如:
当传递给exit和die函数的值为0时,意味着提前终止脚本的执行,通常用exit()这个名字。
echo "1111"; 
exit(0);
当程序出错时,可以给它传递一个字符串,它会原样输出在系统终端上,通常使用die()这个名字。
$fp=fopen("./readme.txt","r") or die("不能打开该文件");

__FILE__:常量(路径)

dirname(__FILE___) 函数返回的是脚本所在在的路径

故选3

6,

解説:3)

3) set_error_handler関数でユーザ定義エラーハンドラに置き換える事ができる。
1) 例外処理とエラー処理は別の機能である。
2) デフォルトの例外処理はset_exception_handler関数でユーザ定義例外ハンドラに置き換えることができる。
4) PHP 5.3から例外はネストすることができる。

php技能考试每日一练的更多相关文章

  1. CSS3每日一练之内容处理-嵌套编号

    出处:http://www.w3cfuns.com/thread-5592229-1-17.html 1.大标题一   1.子标题   2.子标题   3.子标题2.大标题二   1.子标题   2. ...

  2. CSS3每日一练之选择器-结构性伪类选择器

    <!DOCTYPE HTML> <html> <head> <meta charset="gb2312"> <title> ...

  3. HTML5每日一练之progress标签的应用

    progress标签:从名字上来看,估计大家也能猜到这个标签是什么标签了,没错,他是一个进度条.在HTML5中我们终于可以不用模拟了. <progress id="W3Cfuns_pr ...

  4. HTML5每日一练之figure新标签的应用

    igure元素是一种元素的组合,可带有标题(可选).figure标签用来表示网页上一块独立的内容,将其从网页上移除后不会对网页上的其他内容产生影响.figure所表示的内容可以是图片.统计图或代码示例 ...

  5. HTML5每日一练之details展开收缩标签的应用

    details标签的出现,为我们带来了更好的用户体验,不必为这种收缩展开的效果再编写JS来实现.注:目前仅Chrome支持此标签. details有一个新增加的子标签——summary,当鼠标点击su ...

  6. 每日一小练——Eratosthenes 筛选法

    上得厅堂.下得厨房,写得代码.翻得围墙,欢迎来到睿不可挡的每日一小练! 题目:Eratosthenes筛选法 内容: 求质数是一个非常普遍的问题,通常不外乎用数去除.除到不尽时,给定的数就是质数.可是 ...

  7. 每日一小练——高速Fibonacci数算法

    上得厅堂,下得厨房,写得代码,翻得围墙,欢迎来到睿不可挡的每日一小练! 题目:高速Fibonacci数算法 内容:先说说Fibonacci数列,它的定义是数列:f1,f2....fn有例如以下规律: ...

  8. linux每日一练:Enable multithreading to use std::thread: Operation not permitted问题解决

    linux每日一练:Enable multithreading to use std::thread: Operation not permitted问题解决 在linux在需要使用c++11时会遇到 ...

  9. linux命令每日一练:find与rm实现查找并删除目录或文件

    linux命令每日一练 linux中find与rm实现查找并删除目录或文件 linux 下用find命令查找文件,rm命令删除文件. 删除指定目录下指定文件 find 要查找的目录名 -name .s ...

随机推荐

  1. hibernate中save,update,saveorupdate

    save在添加用的时候  不会出现索引机制(即遍历目录  效率最高)update在修改时候要遍历  不存在则会异常saveorupdate是优先遍历  如果不存在则创建(效率最低)

  2. centos vim的安装目录在哪里

    [root@test man]# rpm -ql vim-common | grep python/usr/share/vim/vim72/autoload/pythoncomplete.vim/us ...

  3. Esper

    https://www.igvita.com/2011/05/27/streamsql-event-processing-with-esper/ http://torycatkin.iteye.com ...

  4. 如何学好C语言

    我相信,这可能是很多朋友的问题,我以前也有这样的感觉,编程编到一定的时候,发现能力到了瓶颈,既不深,也不扎实,半吊子.比如:你长期地使用Java和.NET ,这些有虚拟机的语言对于开发便利是便利,但是 ...

  5. 键盘有没有NKRO ?微软帮你测

    玩家甚至媒体的解读是错的,所以小编在此重点说明一些概念.并分享如何测试.在许多游戏与软体中都会使用组合键功能,也就是同时按下特定几个按键之后就能触发特别的功能,简单的说就是一些动作的快捷键.不过,有时 ...

  6. (八)boost库之异常处理

    (八)boost库之异常处理 当你面对上千万行的项目时,当看到系统输出了异常信息时,你是否想过,如果它能将文件名.行号等信息输出,该多好啊,曾经为此绞尽脑汁. 今天使用boost库,将轻松的解决这个问 ...

  7. Sysstat性能监控工具包中20个实用命令

    Sysstat性能监控工具包中20个实用命令 学习mpstat, pidstat, iostat和sar等工具,这些工具可以帮组我们找出系统中的问题.这些工具都包含了不同的选项,这意味着你可以根据不同 ...

  8. IE 下a标签在 position:absolute 后无法点击的问题

    IE 下 a 标签在 position:absolute 后无法点击的问题 条件 : DOCTYPE 为 XHTML. IE 浏览器 现象 : 将 a 的 position 指定为 absolute, ...

  9. Android 自己定义 TextView drawableTop 图标与文字左对齐(效果图)

    public class DrawableTopLeftTextView extends TextView { private Paint mPaint; private float fFontHei ...

  10. Java基础:泛型

    Java的泛型是什么呢, 就是类型的參数化,这得类型包含方法參数和返回值.也就是原本该是确定类型的地方换成了变量,把类型的确定时间向后延迟了. 在之前,学过"重载"的概念,重载是什 ...