面接のタスク-単純なものから複雑なものまで。

はい、これは魂からの叫びです。 なぜなら平均して一週間、私はPHPプログラマーであると主張する少数の人にインタビューするからです。

魂の叫びは、実際には、次のとおりです。
たとえば、10人のうち、最も単純なテストは最大2人(1/2または3分の2)で合格します。 ここにそのような単純な統計があります。

たぶん私はあまりにも複雑な質問(カットの下で多少変更された質問)をしていますか?

実際、このトピックでは、インタビューで潜在的な従業員に提供されるタスクについて話すことをお勧めします。

誰かが自分のタスクを共有したり、コメントで驚くほど簡単なものが何らかの形で生まれたりするかもしれませんが、それはあなたが人のレベルを理解することを可能にしますか?



タスク番号1。



$ x = 1;
if($ x == '1'){
エコー 'a';
}
if($ x == true){
エコー 'b';
}
if((bool)$ x === true){
エコー 'e';
}
if($ x === true){
エコー 'c';
}
if((int)$ x === true){
エコー 'd';
}
/ *
スクリプトの実行中にどの行が表示されますか?
なぜ各条件が満たされるか満たされないのですか?
* /

タスク番号2



/ *
着信回線
site.ru/?x=foo
* /
error_reporting(E_ALL);
ini_set( 'display_errors'、 '1');
ini_set( 'register_globals'、 'on');

var_dump($ x);

設定解除($ x);
ini_set( 'register_globals'、 'off');

var_dump($ x);

/ *
理想的なサーバー条件でスクリプトは何を出力しますか
* /

タスク番号3



クラスTest {
private $ var;
関数setMe($値){
$ this-> var = $ value;
}
}

クラスMore extends Test {
public $ var;
}

$ oTest =新しいテスト;
$ oMore = new More;

echo $ oTest-> setMe( 'foo');

echo $ oMore-> setMe( 'foo');

echo $ oMore-> var;

echo $ oTest-> var;

/ *
このスクリプトはどのバージョンのPHPで動作しますか?
このスクリプトは何を出力しますか?
* /

タスク番号4



/ *
受信URLが次のとおりであるとします:
site.ru/?x=1

次の形式のテーブルがあるとします

-ニュース
---- id(int、11)
----アノン(varchar、255)
----テキスト(テキスト)

記録があります
1発表テキスト
2発表1テキスト2
* /

$ query = "SELECT anons、text FROM news WHERE id = '"。$ _ GET [' x ']。 "'";
$ res = mysql_query($ query);

if($ res && mysql_num_rows($ res)> 0){
while($ row = mysql_fetch_assoc($ res)){
echo $ row ['anons'];
echo $ row ['text'];
}
}

/ *
既存のすべてのニュースを表示するSQLインジェクションスクリプトを作成します。

SQLインジェクションが機能しないようにクエリを変更します。
指定されたIDのニュースがデータベースで見つからない場合は、404 Not Foundという見出しを付けます。
* /

Source: https://habr.com/ru/post/J19964/


All Articles