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. System.Web.Caching.Cache类 缓存 各种缓存依赖

    原文:System.Web.Caching.Cache类 缓存 各种缓存依赖 Cache类,是一个用于缓存常用信息的类.HttpRuntime.Cache以及HttpContext.Current.C ...

  2. ISSkin 使用技巧,WinXP 下的窗口阴影

    原文 http://restools.hanzify.org/article.asp?id=109 是否觉得在使用 ISSkin 的时候感觉窗口太过平板,尤其对于那些窗口边缘和窗口内部颜色一致的皮肤尤 ...

  3. 【LeetCode练习题】Copy List with Random Pointer

    Copy List with Random Pointer A linked list is given such that each node contains an additional rand ...

  4. #include <boost/array.hpp>

    Boost的array,元素可以是std::string #include <iostream> #include <string> #include <boost/ar ...

  5. TestWriter自动化测试介绍

    简介: TestWriter是上海博为峰结合多年为企业做测试服务的经验所研发的一款具有自主知识产权的自动化测试工具,为企业用户提供真正的低成本.高效率的自动化测试,引领软件测试自动化运用由技术层面向业 ...

  6. 关于smali插桩

    虽说是老生常谈的东西了,稍微记录一下. 我觉得最重要的就是寄存器的问题了,如果需要额外的寄存器,要在smali函数的最前面将寄存器数量增加到需要的数量. 在smali代码中,寄存器有两种表示方式,一种 ...

  7. PropertyGrid—为复杂属性提供下拉式编辑框和弹出式编辑框

    零.引言 PropertyGrid中我们经常看到一些下拉式的编辑方式(Color属性)和弹出式编辑框(字体),这些都是为一些复杂的属性提供的编辑方式,本文主要说明如何实现这样的编辑方式. 一.为属性提 ...

  8. css 实现评分效果

    css实现评分效果,其实是css sprites (css精灵)的延伸应用,效果的实现主要是由  background-position 属性移动图片位置.之前看到有前辈写过关于这方面的内容,在理解上 ...

  9. C# 7 函数 青歌赛打分 天气预报

    函数: 数据类型--变量常量--运算符表达式--语句(顺序,分支,循环)--数组--函数 程序里的函数:能完成一个相对独立功的代码块. 数学里的函数:高度抽象. 函数四要素:函数名,输入,输出,加工 ...

  10. C语言静态函数静态变量

    C语言程序可以看成由一系列外部对象构成,这些外部对象可能是变量或函数.而内部对象是指定义在函数内部的函数参数及变量. 外部变量定义在函数之外,因此可以在许多函数中使用.由于C语言不允许在一个函数中定义 ...