0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Java出身の人間がPHPを学んでみたら

Last updated at Posted at 2019-04-02

普通にPHPのこと書いても面白くないので、
Java出身(半年くらいJavaはお仕事しました)
の人間がPHPのことを学んだらどうなるか。というのを書いてみます。

###1.前提
Javaの経歴 詳細設計~単体テストまで  大体半年くらい
Java7~8をちょこっと。
PHPの経歴  Paizaとかprogateで遊んでたくらい。

今回Javaのお仕事からPHP7のお仕事に移ったので、違いとか
カルチャーショックを受けた部分を書いていきたいと思います。

###2.型宣言なくね?
まずこれが一番驚いた。

Javaでは
変数に型を定義しないとまぁまず怒られる。
Eclipseさんのエラー出力やコンパイルエラーでまず怒られる。

ちなみに下記みたいな感じ

helloworld.java

public class{
  public static void main(String[] args){
  int i = 0;
  String text = "javava";
  System.out.println(i);
  System.out.println(text);
}

これをPHPで

helloworld.php

<?php
 $i=0;
 $text="php!php!";
 echo($i);
 echo($text);
>

これで多分コンソールやらどこかに出るはず。

圧倒的なコード量の差。
本当にびっくらこいた。

####3.ラムダ式みたいなのがある

未だにちょっとよくわからなくなるのがこいつ

this->なんかの関数->なんかの関数やら値やら

最初何を意味しているか全くわかりませんでした。

Javaのthis.と思えば良いでしょう。

###4.HTMLに紛れて何やってるかわからん
もっというとJavaScriptに紛れて何やってるかわからなくなる。

な… 何を言っているのか わからねーと思うが 
おれも 何を書いているのか わからなかった…
頭がどうにかなりそうだった… ソースが汚いだとか
インデントがぐちゃぐちゃだとかスパゲティとか
そんなチャチなもんじゃあ 断じてねえ
もっと恐ろしいものの片鱗を 味わったぜ…

という状態。
なにか良い例はないかな~と
こちらのかたのページのサンプルをお借りします。
http://saku.hateblo.jp/entry/2014/02/02/113006

こちらの例はわかりやすく書いてくださってますが
もしこれが3倍、4倍の量とHTMLに混じっていたらもう大変。

読み慣れていないというのもありますが、頭がどうにかなりそうでした。

###5.連想配列
勉強中。未だによくわかりませぬ。
なんでもかんでも配列に格納できるってどういうこと。
ブラックホールか何か?

追記:コメントより、
Javaでいうmap<string,object>と思えばよいのでは?とのコメントをいただきました。その通りでした!ありがとうございますm(__)m

###6.戻り値の型って決まってないの?

<?php
public function foo($var)
{
    if ( [条件式1] ) {
        return "result";
    }
    if ( [条件式2] ) {
        return array();
    }
}

こんなことができるらしい。
Php7ではタイプヒンティングというので型を強制できるらしいです。
phpってすげー。

###7.終わりに
Java出身者はそのほかいろいろなものがカルチャーショックを受けてます。
どうか優しく接してあげてください。

0
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?