「amp」を含む日記 RSS

はてなキーワード: ampとは

2018-10-22

anond:20181022232327

PHPスクリプト増田投稿するとき、「<」や「>」をエスケープしないで記事を書いてたら、IPアドレスアクセス制限がかけられてしまった。

はてなの他のサービスWebページは見られるけど、増田だけアクセスできなくなったw

(今は別のIPアドレスから書き込んでいる)

そんなわけで、続きを投稿できるか分からないけど、書けるだけ書いてみよう。

 

最近はてな広告スパムが多発してたみたいだから、その影響で自動的ブロックする仕組みが導入されたのだろうか?(謎)

増田プログラマー養成講座 その9 MVCフレームワーク

前回はオブジェクト指向プログラミングOOP)で使う様々な仕組みについて学びました。

今回はOOPWebアプリを作ってみよう!

 

今日学ぶこと

 

OOPの使いどころ

OOP文法を学んだ後、OOP長所が発揮される場面をどうやって説明したらいいのか?を考えてみた。

横田意見を参考にして、「フレームワーク」を使って、OOPの使い方を見てみよう。

 

フレームワークとは?

framework →「枠組み」「骨組み」「構造」などという意味英語

システム開発で使われる「フレームワーク」とは、よく使われる機能のパーツを用意して、まとめて1つのパッケージにしたプログラム群のことだ。

 

イメージとしては、いろんなおかずが入ってる豪華な幕の内弁当のようなものだ。

ただし、ご飯のマスだけが空になっていて、プログラマー自分ご飯を用意しないと、弁当としては完成していない形になってる。

普通の白いご飯を作って追加しても良いし、好みや必要に応じて、炊き込みご飯やまぜご飯を作って追加しても良い。

ゼロから豪華な幕の内弁当を作るのは大変だけど、ご飯だけ用意すれば完成するので楽ができる。

 

プログラムの開発でフレームワークを使うと、プログラマー必要最小限のコードを書くだけでアプリを完成させられるので楽ができる。

 

ライブラリーフレームワークの違い

フレームワーク」と似た用語で「ライブラリー」という用語がある。

イメージとしては、ライブラリーは、ばら売りのおかずだ。

弁当を作るときに使いたいおかず(ライブラリー)を自分で考えて探し出し、選ばないといけない。

フレームワーク最初からおかずが全部用意されているので、自分でわざわざ選ばなくてもOK

 

プログラム動作で見た場合フレームワークライブラリーでは決定的な違いがある。

↑このページの「図1●フレームワークにおける制御の反転」という図解を見てみよう。

制御の反転」(Inversion of Control、IoC)といって、自分の書いたコードが主役から脇役になってる点が違う。

 

(主役と脇役という説明は適切ではないかもしれないけど、イメージとしてはそんなかんじ?)

 

MVCフレームワークとは?

フレームワークはいろんな機能全部入りで、こいつを使えば、ちょっとコードを書くだけで、高機能アプリがすぐに作れる。

ここでは「MVCパターン」という仕組みで作られた「MVCフレームワーク」を使ってみよう。

 

MVCは「Model」「View」「Controller」の略で、MとVとCの3つを自分で用意すれば、アプリが作れちゃう仕組みだ。

MVC歴史は古くて、GUI(Graphical User Interfaceグラフィカルユーザインタフェース)を作る方法定番だ。

→「MVC 仕組み」でGoogle画像検索すると、分かりやすい図解がいろいろ出てくる。

 

(参考)

Wikipedia説明は、文章学術的で難しいけど、正確な説明になってると思う。

↑このページの「MVC概要」という図が、MVCの仕組み=動作の流れを分かりやす説明してる。

 

MVCの仲間たち

MVCパターンと似たような仕組みが、他にもいろいろある。

 

こういうプログラム設計に関するノウハウは、「アーキテクチャー・パターン」という分野に蓄積されている。詳細はGoogle検索してみよう。

 

WAF(Web Application Framework

Webアプリを作るときに使われるMVCフレームワークには、いろいろある。

WAFを使うと、Webアプリが手軽に作れる。

 

有名なものとして、

などが挙げられる。

 

PHPOOP学習しているので、ここではPHPのWAFの1つであるCodeIgniter」を使ってみよう。

 

CodeIgniterコードイグナイター)

CodeIgniterは使い方がシンプルで、覚えるルールが少ないので教材に向いているだろう。

それでは、CodeIgniterを使ってみよう。

 

準備

↑このページの「Downloadから「3.1.9.zip」という圧縮ファイルダウンロードする。(2018年10月現在バージョン3.1.9でした)

 

ダウンロードしたファイル解凍して、「CodeIgniter-3.1.9」というフォルダが出てきたら、「waf」という名前に変えよう。(「waf」はWeb Application Frameworkの略。)

今「waf」フォルダの中には、「index.php」というファイルや、「application」「system」などフォルダがあるね?

この「waf」フォルダを以前用意したXAMPPの中にコピーする。(参照:anond:20181017191404 増田プログラマー養成講座 その6 OOPの種類、PHPの準備)

=「C:\xampp\htdocs」(Cドライブの中の「xampp」の中の「htdocs」というフォルダ)の中に「waf」をコピーして下さい。

=「C:\xampp\htdocs\waf」という位置コピーできたらOK

 

動作チェック

これで「Welcome to CodeIgniter!」というWebページが表示されたら、CodeIgniter動作確認OKです。

 

CodeIngiterの設定

$config['base_url'] = 'http://localhost/waf/';

 

Webアプリ作成

それでは「Hello, world!」と表示させるシンプルWebアプリを作ってみよう。

 

MVC「C」作成する。

<?php

defined('BASEPATH') OR exit('No direct script access allowed');

 

class Hello extends CI_Controller {

 public function index()

 {

  $this->load->view('hello_index');

 }

}

ここで注目して欲しいのは、「class Hello extends CI_Controller」という部分です。

フレームワークが用意している「CI_Controller」というクラス継承して、自分で「Hello」というクラスオブジェクト設計図)を作っている、という点です。

ここでOOPの仕組み~継承を使ってるわけですね。

 

MVCの「V」を作成する。

次に、

<?php defined('BASEPATH') OR exit('No direct script access allowed'); ?>

<!DOCTYPE html>

<html>

<head>

 <meta charset="utf-8">

 <title>Test</title>

</head>

<body>

 <p>Hello, world!</p>

</body>

</html>

 

これでWebアプリができました!

今回は簡単なので、MVC「M」は用意しませんでした。(CとVだけで完成)

 

Webアプリ動作確認

Webブラウザーで「ttp://localhost/waf/index.php/hello」(←「ttp」を「http」に変えて下さい)というURLアクセスして下さい。

画面に「Hello, world!」と表示されたら、Webアプリ作成成功です!

 

Hello, world!」の表示だけではショボ過ぎるけど、Webフレームワークを使えばもっといろいろな機能が作れます

詳細は、CodeIgniterマニュアルを参照して下さい。

↑このページで「ユーザガイド(日本語)」を読んでみて下さい。

 

まとめ

 

次回は、OOP理解を深めるための参考書を紹介してみます

 

Webアプリを作るときデータベースがないと不便なので、次の次ぐらいにSQLを学ぼう。

MySQLデータベース)を使えば、掲示板などのWebアプリも作れるようになります

 


anond:20181015215004経験からプログラマーなんだが全然からない

anond:20181016015826 増田プログラマー養成講座 その1 パソコンの用意

anond:20181016164341 増田プログラマー養成講座 その2 プログラムデータ+処理、プログラム言語の種類

anond:20181016180059 増田プログラマー養成講座 その3 構造プログラミングの基本(順次、反復、分岐

anond:20181016193144 増田プログラマー養成講座 その4 子ども向け教材「Scratch」で構造プログラミング練習

anond:20181017161003 増田プログラマー養成講座 その5 オブジェクトとは何か?

anond:20181017191404 増田プログラマー養成講座 その6 OOPの種類、PHPの準備

anond:20181019181549 増田プログラマー養成講座 その7 OOPの仕組み(前半)

anond:20181020230044 増田プログラマー養成講座 その8 OOPの仕組み(後半)

anond:20181022232327 増田プログラマー養成講座 その9 MVCフレームワークを使ってみよう

ブクマカメガリアンを認識するべき

プリキュアの件で適当なこと言ってる人割と見かけるけど(まあブクマなんてそんなもんだけど)

一応念の為メガリアンがどういう感じかは知っておいてほしいと思う

 

ハッシュタグを見ればすぐだし

https://twitter.com/search?f=tweets&vertical=default&q=%23HuG%E3%81%A3%E3%81%A8%E3%83%97%E3%83%AA%E3%82%AD%E3%83%A5%E3%82%A2_%E6%8A%B1%E3%81%8D%E6%9E%95_%E8%B2%A9%E5%A3%B2%E4%B8%AD%E6%AD%A2%E3%81%97%E3%82%8D

https://twitter.com/hashtag/%ED%97%88%EA%B8%8B%ED%86%A0%ED%94%84%EB%A6%AC%ED%81%90%EC%96%B4_%EB%8B%A4%ED%82%A4%EB%A7%88%EC%BF%A0%EB%9D%BC_%ED%8C%90%EB%A7%A4%EC%A4%91%EB%8B%A8%ED%95%B4%EB%9D%BC?f=tweets&vertical=default&src=hash

 

正直、私もこの人達(達?)をちゃん認識できている気がしないけど

フジテレビ叩いてた人とか、不買運動してた人に近いものを感じる

大正ロマンとか、戦争がとかの主張が混ざってる

Twitterデモって感じ? 「拡散希望!」みたいな

アカウントの、他のツイートもみてもらうと良いと思う、ちょっと怖い

 

ところでこれは何?

#ナンジャタウンA3コラボ修正告知はっきりしなさい

anond:20181022082012

そんなことになると会社高齢化、若手が育たず、世代間断絶。

実際には若手からクビにする事は無いよ。

中堅で使えないやつが退職干渉される。

&gt;&gt;

社長上司がいれば部下いらないじゃん、人件費削減の為に部下君クビな」

&lt;&lt;

anond:20181016030314

別の業界に行くなら、転職エージェント

この業界でもうちょい頑張ってみるつもりなら、辛いけどもう少し耐えてみるしかない。

業界経験なら採用されるけど、1社目を2ヶ月程度で辞めたと思われたら、2社目の採用門戸は開かれないかも。

やっぱり自分アプリなりを作ってみると良いかも。時間をなんとか捻出して。

アプリ作れたのであれば、それを転職活動材料に活かしても良いし、作れた事で確実にスキルは上がる&amp;自信もつく。業務Javaとかだとアプリうんたらは仕事に直結させるのは難しいかもしれないけど。

社長社員が直接回答!ZOZO流、採用の“見える化” Twitterで突如「求人Q&amp;A」開始

2018-10-21

増田不正広告が出た

しかし見ていたのは昔のエロ増田だったのでとても報告できない。

  • 日時…2310分ごろ
  • URL秘密
  • 不正広告URL…https://cabaarecentralization.club/?td=track.window4myself.com&amp;cep=YgKuW302PTWkjnV7Ofe_jYRvQm24W6SQ2xyBej6DxteObg_Rrvj29L_RzNdfvkN_V2o-rbpXUv-G63HrGQrtn5xWh_jOe9QScRVW-7CC1BTi1rT2cvlcKccVN30y8W16eqzqXkCQKWnXbCnDxJrw95Ki7WuBVlP0YIvEJofz93WQuS0z4SWmEsmU82tvvhEfyrup2214xJpvfLCIRt_ar2xIC58jL3htNgrB8wg1PvLsLkhCI8LoHx4Y8WkUbcGOeG6z2FMx5E1dZEQhghf30qJqX6rg34rfEXlMs0ZyWprPY8FgtgWghOYs465zCxml&amp;campaign=119858820&amp;zone=1806371-690694191-0&amp;clickid=15401311422582151086086116037250831&amp;klawz=%5Bklawz%5D#


はてな匿名ダイアリーにて発生している不正広告にご注意ください - Hatelabo Developer Blog

http://labo.hatenastaff.com/entry/2018/10/19/153925

原因となりえる広告事業者特定するため、お問い合わせ窓口まで以下の情報を添えて、ご連絡いただきますようお願いいたします。

システムアーキテクト2018/10/21@青山学院大学

FEAPPMSTSCSMAUときて、SAに来ました。ここまで全て受かってます

SAって一般常識的な感じで何勉強すべきかわかりませんでした。。過去問と関連調査くらいです。

■午前2

イウエエイ アアエウア エイエイ ウウウイエ ウエアイイ

  多分合ってる:1,2,5,6,7,9,10,11,17,29,20,22,25

  疑わしい  :3,4,8,12,13,14,15,21,23

  テキトー  :16,18,24

  ---------

  過去問少なくない?知るかよって問題が多すぎる。

■午後1

<大問1>

設問1(1)受講者に向け5週間前に案内メール送信する運用。(3/20内示で4月上旬実施から。)

   (2)人材開発部で受講者と登録したタイミングで案内メール送信する。(これは想像で書くところ。)

   (3)   受講者:所属が変更となる受講者

     タイミング:月の2日,3日から始まる講座。(名簿など作ったタイミングと、月初から所属が変わるからと考えたが…これは間違ってそう。)

設問2(1)人事異動対応できるように社員基本情報所属複数登録できるようにする。(なんかこれも間違ってそう。)

   (2)a:専門分野、b:レベル、c:取得資格、d:資格

   (3)資格名は受領データにないので登録時に設定できるようにする。

設問3: 機能:講座一覧の照会機能(間違ってそう。この機能は有ると思うけど、ぴったりな表現は見当たらなかった。)

    不具合:照会日付での最新情報判別できず正しく表示できない。(主キーじゃないとNULLが入るうると…と考えました。間違ってそう。)

  1-(3)と3がやばい。この問題で4割~5割かも。

<大問2>

設問1:文書登録後、公開前に承認必要とする機能

設問2:開示請求件数の約半数が年度初めの4月、5月に集中するという特性

設問3(1)利用者登録していない個人法人から開示請求する際に、手数料など追加項目を設定するため(いい感じに思ったが、ちょっと飛躍しすぎかも。)

   (2)職員認証システムとのデータ連携が月1頻度に抑えられるため

設問4(1)現行同様、必要に応じ情報提供先に電話で連絡できること

   (2)場所時間制限がなく即時に文書を取得できること(手作業の手間を低減したい、も書きたかったが文字数足らず。)

   (3)事業者の開示請求が多く、メールアドレスより法人電話番号の方が登録やすいため。

■午後2

設問2(PKGと要件ギャップ対策案)を選択過去問にほぼ同じがあり考えたことがあったので。

骨子だけ記載しておく。

1.対象業務システム概要、PKG選定の理由

1-1.対象業務システム概要

1-2.PKG選定の理由

  顧客システム10年動いていて、文書腐ってたり保守コスト運用コスト挙がっているのがPKG導入の背景。

2.PKGと顧客希望機能ギャップとそれに対し検討した解決

2-1.実施したFit&amp;Gap分析

  顧客現行システム機能一覧と、自社PKGの機能一覧を紐づけて整理。それを複数回のデモ確認した。

2-2.分析の結果検知したPKGと顧客希望機能とのギャップ

  以下の3つのギャップが発生した。

   ①PKGのにはAAA機能がなかった。まあどうでもいいトラブル対応用の機能

   ②PKGのにはBBB機能がなかった。これは企業競争力寄与する業務機能

   ③PKGのにはCCC機能がなかった。これも重要だがPKGの追加開発はコストが大きく厳しい。

2-3.ギャップに対して検討した解決

   ①別機能を組み合わせて代替としてもらうよう依頼。マニュアル作って補足。

   ②業務インパクトを鑑みて、追加開発する。

   ③自社追加開発のコストを整理して高いとアピールし、接続する他方システムで改修してもらうように打診。

3.ギャップ解決策と評価

3-1.ギャップ①の解決策と評価

   大変良いと評価した。安易な追加開発に進めずよかった。デモでその認識相違も埋めてよかった。

3-2.ギャップ②の解決策と評価

   業務インパクト分析したのがよかった。

   契約書の追加記載などで避けられたかもしれないので、その可能性も比較すべきだったのが✕。

3-3.ギャップ③の解決策と評価

   情報整理してすすめたことは大変よかった。

   ちょっと強引で顧客や他システム側に嫌われたかも。もっと早めに気づいて展開できればよかった。

  午後1がOKなら、この論文は受かると思う。

以上

空腹の状態で見込みで注文するのよくないね

思いのほかお腹いっぱい

最後まで飲む&amp;食べるのがつらい

ちびちび長居して食べ切るけども

"若い女の子"だとちょっとくらいやらかしたりできなさを露呈したりしてもてへぺろ〜(・ω&lt;)って顔してれば怒られないから気軽にリスク取れるねてへぺろ(・ω&lt;)

これ嘘松でしょ。座標だって(0,0)あるのに

「若おかみは小学生」を褒めてる奴はネトウヨアンチフェミ

最後の方で宿を移ろうとしてる客を引き止めるシーンがあまりにもひどい軍国主義美的描写で私にはダメだった

あの「私は若おかみですから」という宣言主人公自我を殺してしま他者への奉仕を優先するということであって、戦中に少女小説が軍国少女生産に一役買っていた歴史を思い起こさせる

&gt;&gt;天使のごとく麗わしい女性と化す秘訣は、その女性芸術オブジェになろうと聖者になろうと、とにかくそ自我を、個人の喜びを、そして個人欲望を、あるいはそのすべてを放棄することである。それはまさに、その女性に死と、天国約束した犠牲意味する。無私ということは高貴であるというだけでなく、死んでしまっているということでもあるからである

サンドラギルバート/スーザン・グーバー屋根裏の狂女」&lt;&lt;

あのシーンで泣く観客は主人公実質的に「命」を差し出す自己犠牲精神に感動して泣いているということ

戦争美的で、反フェミニズム

きっとアベに投票してるような層が感動しているのだろう

占い師女性と仲良くなるのも気持ち悪い

「女は非科学的」というジェンダーロールの再生産になっている

女性科学者にすればよかったのに

anond:20181020165322

URLが長すぎて100文字超えたかトラバで。

以下 インド神経科学者 アンジャン・チャタジーTEDMED2016「脳はどのように美しさを判断するか」

https://www.ted.com/talks/anjan_chatterjee_how_your_brain_decides_what_is_beautiful/transcript?awesm=on.ted.com_p05B2&utm_medium=on.ted.com-none&share=1d701dad3d&utm_source=direct-on.ted.com&utm_campaign=&language=ja&utm_content=roadrunner-rrshorturl

 

によると、3つの美しさがある。 1.グループの中で平均的な顔 2.左右対称である 3.ホルモン効果

無意識のうちに、生殖に有利な嗜好が、集団の中において普遍的な嗜好となる。

美しさを認識しなくても、魅力的な顔には快楽として反応する。

 

 ということらしいです。つまり、教えられなくても綺麗に見える ということだと思います

 ただ、他のところで

http://nama-gatsuo.com/archives/323

後天的要因で美しく見えるというのも見つけて、例えば、単純接触効果(何回も何回もみてるうちに親しみを覚えてくる)、認知的不協和(好みや意志とは違っていても”自分選択した”ってことから、きっと好きだったからだね! ってことで整合性を持たせていく…らしい)もあるらしい。

 

 ので、答えは、人は、人間の美しさを教えられなくても美しいと思うし、後天的に作っていくこともできる ということらしいです。

2018-10-20

増田プログラマー養成講座 その8 OOPの仕組み(後半)

前回に続いて、今回もオブジェクト指向プログラミングOOP)の基本的な仕組みを見ていこう。

 

教材は、ドットインストールPHP入門です。

OOP関係してる#18から#24までのうち、後半の#22から#24までを一緒に見てみよう!

 

#22 staticキーワードを使ってみよう

動画でこんな用語が出て来た。

 

 

static

クラスベースOOPオブジェクトを使う場合普通は「クラスからインスタンスオブジェクトの具体的な実体)を作ってから使う」と説明した。

実は、newでいちいちインスタンスを作らなくても、クラスメンバープロパティーやメソッド)を直接呼び出して使える仕組みも用意されている。

それが「static」(静的)という仕組みだ。

 

「静的」(static)という言葉は、「動的」(dynamic)の対義語になっている。

newでインスタンスポンポン作っていくのが「動的」なら、new無しでコッソリとメンバーを呼び出すのが「静的」というかんじ?

 

PHPでは、インスタンスを作らなくても、直接(静的に)呼び出せるメンバーには「static」という目印を付けておく、という文法になってる。

さらに、

 

それではstaticなメンバーを入れたクラス定義してみよう。

class User {

 // プロパティー:インスタンス変数(staticなし。newした後じゃないと使えない)

 public $name;

 // プロパティー:静的変数(staticあり。newなしでいきなり使える)

 public static $count;

}

 

文法的には「static」という印を付けるか、付けないかの違いしかない。簡単だ!

次は、staticなメンバーの呼び出し方を見てみよう。

 

::演算子

ちょっと待った!「演算子」という言葉は初めて出てきたね?意味確認しておこう。

1+2は3になる等、対象(1とか2とかの数値データ)を操作(=演算)して、3という結果を得られる。

 

「::」はスコープ定義演算子とか、ダブルコロンと呼ばれている。PHPマニュアルでは以下のように説明されている。

static, 定数 およびオーバーライドされたクラスプロパティメソッドアクセスすることができます

静的メンバーを呼び出す専用の記号として「::」という演算子記号)が用意されている、というわけだ。

まり、「::」という演算子を使うことで、静的メンバー操作できる。

 

それでは、「::」を使って、静的メンバーを呼び出してみよう。

class User {

 // プロパティー:インスタンス変数(staticなし。newした後じゃないと使えない)

 public $name;

 // プロパティー:静的変数(staticあり。newなしでいきなり使える)

 public static $count;

}

 

// new無しでいきなり使える!

User::$count = 1; // 1を代入する。

echo User::$count; // 1と表示される。

 

実験で以下のコードも追加してみよう。

// staticが付いてないインスタンス変数(new無しで使えない)を呼び出す。(本来は呼び出せない)

User::$name = "yamada";

echo User::$name;

実行すると

PHP Fatal error: Uncaught Error: Access to undeclared static property: User::$name

というエラーメッセージが表示された。

「staticなプロパティーとして定義されてないから、アクセスできないよ!」と怒られた~~~(涙)

staticじゃないメンバーには、ちゃんとnewしてインスタンスを作ってからアクセスしないと、使えないんですね。(面倒)

 

キーワード「self」

オブジェクトメンバープロパティー、メソッド)に、オブジェクトの中のメンバーアクセスするとき

という使い分けになってる。単にこれはPHP文法なので、特に悩む余地はない。

 

this=インスタンスメンバー操作する場合

class User {

 // 普通プロパティー:インスタンス変数(staticなし。newした後じゃないと使えない)

 public $name; // ←この$nameをこの下にあるをhello()から使いたい

 // 普通メソッド

 public function hello() {

  echo "Hello, " . $this->name; // this->で指定する

 }

}

$taro = new User;

$taro->name = "Yamada Taro";

$taro->hello(); // Hello, Yamada Taro

「this」が自分自身オブジェクトを指し示す。

$this->nameで、オブジェクト(この場合インスタンス)内の$nameアクセスできる。

 

self=クラスの静的メンバー操作する場合

class User {

 // staticなプロパティー:静的変数(staticあり。newなしでいきなり使える)

 public static $name; // ←この$nameをこの下にあるをhello()から使いたい

 // staticなメソッド

 public static function hello() {

  echo "Hello, " . self::$name; // self::で指定する

 }

}

// new無しでいきなり使える!

User::$name = "Suzuki Hanako";

User::hello(); // Hello, Suzuki Hanako

「self」が自分自身オブジェクトを指し示す。

self::$nameで、オブジェクト(この場合クラス)内の静的な(staticな)$nameアクセスできる。

言ってる意味、分かる?(説明が分かりにくい?)

 

スコープとは?

「this」とか「self」とか、いちいち使い分けていて面倒くさいなーと思うだろう。

なんでこんなことをやってるか?というと「スコープ」という仕組みが関係してる。

ドットインストールPHP入門でも、#16でちょっとスコープについて説明してあった。

PHPスコープの種類は3種類しかありません

  1. ローカルスコープ
  2. グローバルスコープ
  3. スーパーグローバル

 

スコープ有効範囲

スコープ」(scope, 可視範囲)は、元々は潜水艦に付いてる望遠鏡(潜望鏡)のこと。

プログラミングでは、あるデータ変数とか)がどこまで見えるか、覗けるか、という範囲のことを「スコープ」と呼んでる。

変数関数がどの範囲まで有効なのか、使えるのかは、その変数関数スコープで決まっている。

Wikipediaで「スコープ」の説明を見ると、ゴチャゴチャ書いてあるけど、要するにスコープには、広い範囲や狭い範囲があるってこと。

 

thisやselfをわざわざ使い分けているのは、範囲を指し示すときに、

それとも

という場所の違いをハッキリと区別するためなんだ。

 

クラスオブジェクト設計図)を眺めたときに、

thisを使ってたら、「ああ、newしてインスタンスを作らないと使えないんだな」と分かる。(インスタンスの中の話)

staticとselfを使ってたら、「newしないで、静的に使えってことだな」と分かる。(クラスの中の話)

 

太郎の$nameとか、花子の$nameとか、インスタンス場合は、各インスタンスメンバーは、明確に分かれていて、両者が混ざることはない=別々のスコープになってる。

クラスの静的メンバーは、そのクラスに1個しかないので、そのクラスをnewしないで(インスタンス無しで直接呼出しときは)、いろんなところから呼び出されても、共通の中身になってしまう=スコープが1個、同じスコープになってる。

 

インスタンス変数クラスの静的変数は別物なので、thisとselfで使い分けてる、というわけだな!

 

ここまで読むと「staticって面倒くさいやつだな!なくてもいいじゃん!」と思っただろう。その通り!

staticは使わなくて済むなら、なるべく使わない方がいい。

「static 欠点」で検索してもらえば、staticを使った場合問題点が紹介されている。

どうしてもstaticじゃないと実現できないこと、staticの方が便利な場合だけ、staticを使うようにしよう。

 

(参考)PHPのstaticの使い方

 

#23 抽象クラスを使ってみよう

動画でこんな用語が出て来た。

 

 

抽象クラス

これはドットインストール説明そのままでOKですね。

 

具象クラス(今まで勉強してきた普通クラス)だけではなく、「抽象クラス」という特殊クラスを作る仕組みも用意されている。

抽象クラスは、継承してその子クラスを作るとき、「必ずこのメソッド自分で作れよ!」などと強制できる。

まりクラスの利用方法継承とか)について、プログラマーに指示を出せる働きがある。

 

抽象クラスの特徴として、具象クラス(通常のクラス)との違いを挙げます

 

1. 抽象メソッド定義する事ができる。

抽象メソッドとは、実際の処理を自身にではなく子クラス記述させるためのメソッドです。

この抽象メソッド記述できることが、抽象クラスの最大の特徴です。

抽象クラス継承したクラスは、この抽象メソッドを必ず「オーバーライド」しなければなりません。(オーバーライドしないとコンパイルエラーとなります。)

 

2. 抽象クラス単体でインスタンスを生成する事はできません。

抽象メソッド定義している。

まり、実際の処理を記述していない訳ですから当然インスタンスを生成して使用する事は出来ません。

JavaPHPも同じですね。

 

#24 インターフェースを使ってみよう

OOP継承には、「単一継承」と「多重継承」という種類がある。

普通は、「単一継承」といって、親クラスからクラス継承して作るとき、親クラスは1個だけしか指定できない。(1:1)

クラスA、クラスB、クラスCの3つを親クラスとして、クラスZという子クラス継承して作る仕組みは、「多重継承」という。多重継承可能場合、子クラス複数の親クラスを持てる。(多:1)

 

PHPJavaでは、多重継承ができない代わりに、「インターフェース」という仕組みが用意されている。

インターフェースを使うと、多重継承と似たようなことができる。

 

↑ここにクラスインターフェースの相違点がまとめられてたので、参考にしてみてください。

 

インターフェースの使い方、文法を見ておきましょう。

  • class」の代わりに「interface」を使う。
  • 「extends」の代わりに「implements」を使う。
  • 継承する」という代わりに「実装する」という言い方をする。

interface sayHi {

 public function sayHi();

}

interface sayHello {

 public function sayHello();

}

class User implements sayHi, sayHello {

 public function sayHi() {

  echo "hi!";

 }

 public function sayHello() {

  echo "hello!";

 }

}

$taro = new User; // コンストラクターに渡す初期データがない場合「new User();」みたいに「()」を付けなくてもOK

$taro->sayHi(); // hi!

$taro->sayHello(); // hello!

 

PHPOOP機能

#22から#24までを見て、PHPOOP基本的な仕組み~使える機能について見てきました。

PHPには、他にもいろんなOOPで使える機能が用意されています

 

その他のOOP機能

Javaなど他のプログラム言語には、PHPにはないOOP機能も用意されています

オブジェクトを利用するときの仕組みとして、いろんな方法が考えられてます

 

使う機会があれば調べてみましょう。

 

ここまでで、やっとOOP基本的な仕組み、用意されている機能テクニックを学びました。

次回は、なぜこんなOOPの仕組みが考え出されたのか?どうやってOOP活用していくのか?を見ていきましょう。 


anond:20181015215004経験からプログラマーなんだが全然からない

anond:20181016015826 増田プログラマー養成講座 その1 パソコンの用意

anond:20181016164341 増田プログラマー養成講座 その2 プログラムデータ+処理、プログラム言語の種類

anond:20181016180059 増田プログラマー養成講座 その3 構造プログラミングの基本(順次、反復、分岐

anond:20181016193144 増田プログラマー養成講座 その4 子ども向け教材「Scratch」で構造プログラミング練習

anond:20181017161003 増田プログラマー養成講座 その5 オブジェクトとは何か?

anond:20181017191404 増田プログラマー養成講座 その6 OOPの種類、PHPの準備

anond:20181019181549 増田プログラマー養成講座 その7 OOPの仕組み(前半)

anond:20181020230044 増田プログラマー養成講座 その8 OOPの仕組み(後半)

anond:20181022232327 増田プログラマー養成講座 その9 MVCフレームワークを使ってみよう

今日も女はディズニー禁止

怖いんですけど

逃がした魚は鯛

&gt;゜)))彡

anond:20180624222750

とりあえず、リアル店舗相談するのが吉だと思う。

Macはいいよね。

俺はMacbook-&gt;MacbookPro-&gt;ドスパラPCって経路になってる。PCにはUbuntu16.04入れてぱちぱちやってるけど、ゲームするときはWin10に切り替えるって感じ。だけど今でもMacを使いたいとは思っている。理由とかはあまりないけど、フォントの綺麗さやUnixなのは魅力。

anond:20181020141428

https://www.google.com/search?client=safari&rls=en&q=%22Shift:+Day+Job%22&ie=UTF-8&oe=UTF-8

うーん、検索結果だと人の募集日中仕事shift: Day Job って書くことはもはやテンプレ化してるようにすら見えるんだが。

英語、という括りではなく求人ワードなんじゃないのか、単に。

anond:20181020134404

https://jp.indeed.com/viewjob?jk=3b303df5054c9e8e&tk=1cq7romrh7chs803&from=serp&vjs=3

Excellent verbal and written communication skills

Excellent administration and IT skills

Committed to delivering a high level of customer service, both internally and externally

Flexibility to respond to a range of different work situations

Ability to work under pressure

・おはなしもできてぶんしょうもかけるすっごいコミュニケーションスキル

・すっごいかんりのうりょくとパソコンの大先生スキル

・(多分これ重要)おきゃくさまにも「内側の人」にもちゃんサービスできる人

・いろんなしごとににゅうなんにたいしょできるひと

・耐パワハラ性能

みたいな。割とデジタルじゃないよな。

anond:20181020132357

いちおう求人なんかだと英語のものもかなり目立つんだが、人種規定は流石に載ってないな。

https://jp.indeed.com/求人?l=北海道+ニセコ&amp;jt=fulltime

ただ、実際採用の際に英語スキルだけではなくて人種チェックも当然にして行なっているのだとは思われるが。

(これは実際ニセコに行って統計取れそうな話)

anond:20181014032639

&gt; これがもしも何ともなければ、がん保険に入ろう。

という文が先にあったから、一度に色々やったというくだりでお金のことが気になってしまったけど実際どうだったんだろう。

キズナアイ批判三人衆でラーメン三銃士のコラ作ってほしい


浮世絵アイコンの「わたし感覚が公の感覚。薙ぎ払え→腐ってやがる。早すぎたんだ」の即オチコマおばさんを含めて四天王のコラでもいいよ

2018-10-19

anond:20181019205250

&gt;もう何度も行ってきたが

匿名掲示板で何書いても世間には伝わらないぞ

アーカイブ ヘルプ
ログイン ユーザー登録
ようこそ ゲスト さん