エラーや例外の取り扱いの変更 fatal error や recoverable fatal error の多くが、PHP 7 では例外に変換されるようになりました。 これらの例外は Error クラスを継承したもので、 このクラスは Throwable インターフェイスを実装しています。 この新しいインターフェイスを、すべての例外が実装しています。 エラーではなく例外がスローされるようになるということは、自作のエラーハンドラは呼び出されなくなるということです (Error 例外をキャッチしなかった場合は、fatal エラーが発生します)。 PHP 7 におけるエラーハンドリングの詳細な説明は PHP 7 のエラー を参照ください。 この移行ガイドでは、下位互換性のない変更点を列挙するだけにとどめます。 set_exception_handler() が常に Exception オブジェク
PHPでプログラムをしていると、 $name1 = "userA"; $name2 = "userB"; $name3 = "userC"; $name4 = "userD"; $name5 = "userE"; みたいに、変数が連続になることがあります。 この変数に値があったら表示させる というような場合に、if文を使うと↓のようになります。 if($name1){ echo($name1); } if($name2){ echo($name2); } if($name3){ echo($name3); } if($name4){ echo($name4); } if($name5){ echo($name5); } 5個ぐらいならなんとかけますが、変数が10個とかになると面倒になってきます。 そんな時に便利なのが 変数名の中に違う変数の値を挿入できる可変変数。 例えば、$name1,$
phpで文字列の一部分を削除したいと考えています。 たとえば下記のようなURLがあるとします。 $test = 'http://youtube.com/watch?v=6jNfOUy9Kp4'; こちらに下記のような「&」による複数のパラメータがついているかどうかを調べて、ついていた場合に削除して代入しなおす方法を教えてください。 【「&」がついている例】 $test = 'http://youtube.com/watch?v=6jNfOUy9Kp4&feature=related&showsearch=0'; 左から一番初めの「&」以降のパラメータを削除し、$testを上書きしたいです。 ※「&」による複数のパラメータが無い場合はそのままの形で代入したいです。 mb_strpos関数で出来るのでは?というところまで分かるくらいのphp初心者です。 宜しくお願いします。
第5回は条件分岐についてお話します。 第1回で、プログラムは上から下に流れる、とお話しました。 でも場合によっては、「同じ処理を繰り返したい」、「結果によって処理を変えたい」事もあるでしょう。 そんな時に活躍するのが、制御文(今回お話する条件分岐、次回に予定している繰り返し)です。 ではまず、条件分岐のif文からご説明します。 if文 英語のifの意味の通り、「もし○○だったら、△△する」というような、条件によって処理を分けたい時に使います。 プログラムの流れは、条件が成り立った場合と成り立たなかった場合の2つに分かれます。 (if文を複数使用する事によって2つ以上の流れを作る事もできます。) 条件には、前回に出てきた比較演算子や論理演算子を使った条件式を指定します。 if文には以下の3つの種類があります。 ifのみ if~else文 if~elseif~else文 それでは順番に説明しま
< ?php $test = 'aaa'; switch (true) { case ($test > 10): echo "10!"; break; case is_numeric($test): echo "digit!"; break; case is_float($test): echo "float!"; break; case is_aaa($test): echo "aaa!"; break; default: break; } function is_aaa($str) { return ($str === 'aaa') ? true : false; }URLのパラメータが数字だったら、という処理をif文ではなくswitch文で書けたらきれいかな、と思ってやってみたら動きました。ユーザ定義関数を使うときはちゃんとboolを返さないと動かないようです。 マニュアルには見当た
条件文を||でたくさん区切っていくより下記がすっきりします。 単純な場合は、switchがいい時もありますが。 if(in_array($val, array(‘あ’,’い’,’う’))){ echo “Hit!”; }else{ echo “NG”; } 関連記事: PHP:foreach での出力順 PHPで foreach() での出力順は、基本は確保した順。 一意に保たれるとか保たれないとか情報がありますが。 注意点は配列の添字番号順にはならない、という事 $data[0] =”A”; $ … 続きを読む →... foreach で値を参照で受け取った場合は、配列を壊さないようにunset()するべき。 下記のように、foreach で参照で値を受け取って配列の値を加工する場合に、最後にunset()しないと、配列を破壊する場合があります。 [crayon-67b4ea3a53a
私自身よくやってしまうので、自分への戒めも込めて「悪いソースコード」の例を幾つか上げてみようと思います。 1. 型を意識しないで変数を使いまわす $num = 1234; $num = 'number' . $num; echo $num; 気をつけてないとかなりの頻度でこうなっています。PHP ならではの現象。 2. 条件分岐やループのネストが深すぎる if($param[0] == 'a'){ if($param[1] == 'b'){ foreach($arr as $value){ if($param[2] == $value){ for($i=0;$i<=10;$i++){ echo 'Hello, World!'; } } } } } たいていは目的ごとに関数を定義すると綺麗にまとまることが多い気がします。 3. 一行に詰め込みすぎる echo htmlspecialchars
先に「WebStorm」について軽く言及 【コラム】イマドキのIDE事情 (94) 最強のJavaScript IDE「WebStorm」を試してみる | エンタープライズ | マイコミジャーナル 最強のJavaScript IDE 「WebStorm」を使ってみた | Web scratch 最強と称したのは自分じゃないのですが、「WebStorm」は最強らしいです。最強な割に、AptanaとかKomodo等と比べるとマイナー感が溢れているのですが、気のせいでしょうか。 WebStorm自身、いつの間にかJavaScript向けのIDEということになっていますが、実際はWebフロントエンド全般に適したIDEです。そのため、HTMLやCSSについても、優秀な機能を備えています。とはいえ、HTMLやCSSだけを取り扱う場合はIDEが縁遠い気もするので、実質JavaScriptでゴリゴリ開発す
phpのechoやprintなどを使って、htmlのコードを出力することってあると思います。 例えば、下のようにhtmlタグにidとかclassを指定して出力する時などです。 <div id="content">このときダブルクォーテーションを出力するためには、¥(エンマーク)をダブルクォーテーションの前に入れます。 phpで「<div id=”content”>」を出力 <?php echo "<div id=\"content\">"; ?>または、シングルクォーテーションで囲みます。 <?phpecho '<div id="content">'; ?>出力結果<div id="content">という感じです。基本的なことだと思いますが、知っているとちょっと安心します。 phpを使い始めてコード中に¥(エンマーク)がいきなり出てきた時はちょっと焦った記憶がありましたので、自分メモも含
画像をランダムに切り替えて表示する方法(PHPとJavascript) ホームページやブログのトップ画面でいつも同じ画像が表示されているのは味気ないものです。時々画像を入れ替えるのも面倒なものです。画像をランダムに切り替えて表示する方法を試してみました。 PHPで画像をランダムに切り替えて表示する方法 ワードプレスや ホームページ楽天 のPHPで画像をランダムに切り替えて表示する方法を試行錯誤していましたら、うまく表示できるようになったので紹介します。 ページにアクセスする毎に、ランダムに画像ファイルが違って表示されるので、なかなか良い感じになりました。 PHPスクリプトは次の通り <?php $rand_img[] = "<img src=\"http://hogehoge.jp/****/img1.jpg\" alt=\"img1の代替テキスト\" title=\"img1の説明\"
$_SERVER変数について PHPでは、サーバに関する環境変数は $_SERVER グローバル変数(どこからでもアクセス出来る変数)に格納されます。 非常に便利なのですが、よくどの変数がどれだっけ?と忘れてしまうので、備忘録兼ねて書いておくことにします。 例には、実際にアクセスがあった時点の$_SERVER変数値を掲載していますので、ご自身のアクセス情報なども確認することができます。
HOME | TOP ■ 配列の作成 ▼ array()を使って配列作成 $array = array(1, 2, 3); 作成した配列は、$array[0]のようにして値を参照できる。 配列の要素は0番目から始まるので$array[0], $array[1], $array[2]と続くことになる。 ▼ 要素ごとに代入して配列作成 $array[0] = 'これは0番目要素'; $array[1] = 'これは1番目要素'; $array[2] = 'これは2番目要素'; ▼ 要素ごとに代入して配列作成(その2) $array[] = 'これは0番目要素'; $array[] = 'これは1番目要素'; $array[] = 'これは2番目要素'; 0番目要素から始まる一般の配列の他に、連想配列がある。 一般の配列は0番目要素から順番につづいていくが、連想配列はキー(文字列)とその値のペア
Getting Started Introduction A simple tutorial Language Reference Basic syntax Types Variables Constants Expressions Operators Control Structures Functions Classes and Objects Namespaces Enumerations Errors Exceptions Fibers Generators Attributes References Explained Predefined Variables Predefined Exceptions Predefined Interfaces and Classes Predefined Attributes Context options and parameters Su
PHP Advent Calendar 2011 の 17 日目です。昨日はhajikamiさんの「http://my-rest.icca.jp/blog/2011/12/769/」でした。 みなさんこんにちは。17 日目担当の omoon です。普段は大阪で WEB アプリケーションを作ったりしている会社におりまして、PHP は触り始めて 10 年ぐらいです。 本当はもっと早く記事を上げる予定だったんですが、急遽下のような仕事が入りまして遅くなりました。ごめんなさい。 さて、みなさんは配列の要素の存在確認ってどうされてますか? 僕は、PHP を始めてからずっと無条件で isset() 関数 を使っていたのですが、ついこの間、えー、うそん!的なハマりを体験いたしましたので、もうご存知の方には面白くともなんともない話だとは思いつつ、恥を晒す覚悟でまとめてみたいと思います。 isset() 関
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く