[PHP]RubyistがPHPやって陥ったこと

公開日:2018-12-03
最終更新:2018-12-04

はじめに

Rubyを3ヶ月ほど学習した後に転職。 お世話になる企業ではPHPを使っているとのことなので、爆速でPHPを取得しようと思います。とりあえずProgateやってみた所感と自分用メモの記事です。

PHP 基本文法

変数

$php = "phpはじめました"

変数には$マークを作る。

比較演算子

$i = "5 hello";
var_dump($i);
echo $i."<br>";
if ($i == 5) {
  echo "ok";
}else {
  echo "no";
}

=> ok

これが一番驚きました。なんなんだ...

Rubyみたいに完全一致させたいならば

$i = "5 hello";
var_dump($i);
echo $i."<br>";
if ($i === 5) {
  echo "ok";
}else {
  echo "no";
}

=> no

各クォーテーションの挙動が違うかった

Rubyでのクォーテーション・ダブルクォーテーションと PHPのものでは挙動が違う。

"(ダブルクォーテーション)は特殊文字(\nや\tなど)・変数を展開できる。

'(シングルクォート)はできない。

<?php
   $name = "Rubyist";
  echo "Hello, {$name}";
  // => Hello, Rubyist
?> 

<?php
   $name = "Rubyist";
  echo 'Hello, {$name}';
  // => Hello, {$name}
?>

ダブルクォートは式展開される。シングルクォートは式展開されない。

ここはRubyと同じ。

<?php
  $x = 20;
  if($x > 30){
    echo '$xは30より大きいです';
  }
  if($x > 10){
    echo '$xは10より大きいです';
  }
?>

シングルクォートでなければ出力されない。

連想配列からの値取得

$array('ruby' => 1, 'php' => 2);
echo $array['ruby'];

エラー

Parse error: syntax error, unexpected $end, expecting T_VARIABLE 

基本的には文末の ; 抜けを確認する。

値の取り出し

echo $_POST['name'];

大文字で!

foreach文

<?php
$datas = array('ruby', 'elixir');
foreach($datas as $data){
  echo $data;
}
?>

これはむしろ分かりやすい。英文がそのままの意味。

if文で要素を吐き出す時の分岐

<?php $ruby = 11 ?>
<?php if($ruby > 10): ?>
  <p>10以上</p>
<?php elseif($ruby > 0): ?>
  <p>0以上</p>
<?php else: ?>
  <p>0未満</p>
<?php endif ?>

ifとelseifの条件式の後に : が必要。

オブジェクト指向

クラスの定義

class Thing {
  //ここの処理を記述
}

プロパティの定義。

class Thing {
  private $name;
  private $wieght;
}

privateだとそのクラス内からしかアクセスできない。 もちろん子クラスもアクセスできない。

class Thing {
  protected $name;
  protected $woeght;
}
~~~~~~
//継承先のクラスからも親クラスのプロパティにアクセスできるようになる。
class Food extends Thing {
  private $taste;
}

関数の呼び出し

__construct、ゲッターとセッターというのがある。正直initializeメソッドでプロパティとプロパティ返すメソッド作るのがこれで行う感じ。

class Thing {
  protected $name;
  protected $wieght;

  public function __construct($name, $wieght) {
    $this->name = $name;
    $this->wieght = $wieght;
  }

  public function getName() {
    return $this->name;
  }

  public function setName($name) {
    $this->name = $name;
  }
}

追記予定。

記事が少しでもいいなと思ったらクラップを送ってみよう!
72
+1
@yu9penguinの技術ブログ

よく一緒に読まれている記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる

技術ブログをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

技術ブログを開設する

Qrunchでアウトプットをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

Markdownで書ける

ログ機能でアウトプットを加速

デザインのカスタマイズが可能

技術ブログ開設

ここから先はアカウント(ブログ)開設が必要です

英数字4文字以上
.qrunch.io
英数字6文字以上
ログインする