• ベストアンサー

PHPのソースの中の->とかの意味について

PHPの完全な初心者です。PHPが知っていることを前提とした教本のソースをみて勉強を始めていますが、なかなか検索がうまくいかず、分からないことがたくさんあるのですが、専門家の方、ご教授願います。。 (1)-> の意味 例)$abc = $results->list->video; (2)=== の意味(イコールが3つ) 例)if ($result === false) { (3)=> の意味 例)'cacheDir' => 'cached/', また、ソースを見ながら勉強するときに、皆さんが参考にされているサイト、本があれば ぜひ教えてもらえないでしょうか。

  • PHP
  • 回答数2
  • ありがとう数15

質問者が選んだベストアンサー

  • ベストアンサー
  • inu2
  • ベストアンサー率33% (1229/3720)
回答No.2

-> はアロー演算子と呼ばれるもの。 オブジェクトのポインタを使ってメンバにアクセスするって意味なんですが っと、この時点でたぶん、つまづくかと思いますが・・・ class hoge { public function foo(){ print "ふーです"; } } $hoge = new hoge(); $hoge->foo(); //PHP5で動作します。 この場合は、hogeの中のfooを実行しろ って意味。 $abc = $results->list->video; この場合は、メンバ変数に直接アクセスしている方法です。 $result の中にある、listっていう変数も、何かしらのオブジェクト構造を持っていると推測できます。その中のvideo という変数にアクセスしろ って意味。 まぁ、良く、simpleXMLでXMLをパースさせた時に見かけますね。 === は 型が厳密な言語に対して、phpはかなりルーズな型比較をしてくれます。 例えば、 if (1 == "1") は、trueになります しかし、厳密には、stringとしての"1" と intとしての1は違います。 そこで、型も厳密に比較する === を使います if (1==="1") これは、falseとなります。 ほかにも if (1 == true) if (1 === true) など、様々試してみてください。 =>は、「<=」や「>=」などの比較演算子とは関係ありません。 単に、arrayなどで使う $foo = array("a"=>1); と $foo["a"] = 1; は等価です。 この場合の=>は。 = と同じ意味だと思ってください。 foreach( $foo as $key => $val){ print $key."=".$val; } この場合も、感覚的には似たようなもん。 $fooを分解して、 $key と $valの組み合わせにしなさい。って意味。 私が仕事上でPHPで組む時に参考にしているサイト。 http://jp.php.net/manual/ja/index.php

その他の回答 (1)

  • notnot
  • ベストアンサー率47% (4848/10262)
回答No.1

(1)オブジェクトのプロパティ、(2)厳密に等しい、(3)ハッシュの表記 ですが、おそらく意味がわからないでしょうね。やはりまずは基本的な文法を解説した本を読んだ方が良いと思います。 基本がわかればあとは http://www.php.net/manual/ja/ で関数を調べる程度で読めると思います。

関連するQ&A

  • phpのソースについての初歩的な質問

    PHPを某教本のサンプルを見ながら勉強しています。インターネットを参照しながら勉強していますが、なかなか引っかからないものがあるため、専門家の方、ご教授願います。 (1)<form action="" method="get"> と書いている場合、actionはどこを参照するのですか? (2)$result = require_once 'Cache/Lite.php'; と書いてあり、require_onceはincludeと同義であり「評価する」 とあったのですが、これはファイルを読み込んで実行する、ということでいいでしょうか? (3)また、'Cache/Lite.php' というのは、スーパーグローバル変数みたいにデフォルトで準備されているものなのでしょうか? (4)try {   } はどういう意味なのでしょうか? 初歩的な質問ですみません。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHP+windowsでChasenを使いたい

    お世話になっております。 散々Googleなどで調べてみたのですが、解決しなかったので質問いたします。 PHP4.4.2+Apache2.0をWindowsXP環境で動かして制作をしているのですが、 表題のとおり、PHPでChasenをうごかすことができずに困っています。 以下のサイトを参考にしているのですが、そのとおりにやってみても動かないのです…。 http://aineko.com/php/program/chasen.php コマンドプロンプトから、Chasen単体を動かせることは確認済みです。 以下PHPソースになります。 $chasen ="C:\ChaSen\chasen.exe"; $contents = "明日は晴れるそうですね。"; $results = popen ("echo $contents | $chasen ", 'r+'); while ($chasen_result = fgets($results)) { $result = split("\t",$chasen_result); $num = count($result); for($i=0;$i<$num;$i++){ echo $result[$i]."\t"; } print "\n"; } pclose ($results); WEB上で動かしてテストしているのですが、特にエラーが返ってくるわけではなく、 真っ白な画面のまま、何も出力されないのです。 調べてみたところ、$resultにはResource id #2が入っており、 $chasen_resultはからっぽ、という状態です。 PHPを初めて間もないため、リファレンスなど参考にあれこれしているのですが 一向に解決しません…。 何かご存知の方、ご教授をお願いいたします。

    • 締切済み
    • PHP
  • phpの「->」の意味は?

    教えてください。 phpで良く使われている「->」の意味はなんでしょう? 実際のソースを見ると頻出ですが php書籍(入門書ですが・・)のリファレンスにも 載っていません。 文脈からなんとなく理解できるときもありますが まったく分からないこともあります。 ちなみにphpは初心者です。 (vbaやcobol経験者です) よろしくお願いします。

    • ベストアンサー
    • PHP
  • phpソースの中のjavascriptを実行する方法

    現在、AJAXの勉強をしているプログラミング初心者です。 環境はapache2,php5です。 phpのソースの中にjavascriptを埋め込んだものを動作させるには どうしたらよいのかが分かりません、 例えば以下の2つのファイルの場合。 abc.php↓ --------------------------------------------------------------- <html> <head></head> <body> <?php echo "こんにちわ"; ?> <script tyep="text/javascript"> alert("hello"); </script> </body> </html> --------------------------------------------------------------- abc.html↓ --------------------------------------------------------------- <html> <head> <script> try{ var obj= new ActiveXObject("Microsoft.XMLHTTP");} catch(e){var obj=new XMLHttpRequest();} function load(point){ obj.open("POST","abc.php",true); obj.send(null) obj.onreadystatechange=change; } function change(){ if(obj.readyState==4){ document.getElementById("target").innerHTML=obj.responseText; } } </script> </head> <body> <div id="target"></div> <a href="#" onclick="load();">click!</a> </body> </html> --------------------------------------------------------------- としたところ、 abc.phpを実行した場合はabc.phpのjavascriptが実行されてアラートがでるのですが、 abc.htmlからabc.phpにリクエストを出して出力された場合には、 javascriptが実行されずにアラートが出ない。 どうしてこのようになるのでしょうか? また解決策があれば教えてください。 よろしくお願いします。

  • PHP

    PHPで下のPHPが読み込まれません。なぜでしょうか? <?php: $result = array(); $path = '/etc/cron.d/autopbxrestart'; $handle = fopen($path, 'r'); while(false !== ($line = fgets($handle))){ list($fun, $jikan, $hi, $tuki,$youbi) = explode(' ', $line); $result{0} = $fun; $result{1} = $jikan; $result{2} = $hi; $result{3} = $tuki; $result[4] = $youbi; echo $result{0}; echo $result{1}; echo $result{2}; echo $result[3]; echo $result[4]; fclose($handle); } ?> <php if ($_SERVER['REQUEST_METHOD'] === 'POST') { $erandayoubi = $_POST['youbi']; foreach($erandayoubi as $youbi){ echo ' '. $youbi. '曜日 '; } echo $_POST['jikan']. "jikan".POST['fun']. "分 実行有無:[".$_POST['opt']. "]を設定しました。"; ?>

    • ベストアンサー
    • PHP
  • PHPの『->』

    PHPのソースを解読しているのですが、『->』この記号の意味がわかりません。 なんとなく、変数の一部を示すときに使ってる気はするのですが、ほかのソースと規則性がみえてきません。何のためにこの記号をつかうのでしょうか?

    • ベストアンサー
    • PHP
  • PHPのwhileの理解の仕方教えてください。

    初めまして。つい最近PHPを勉強しようと始めました。 初歩の初歩でまったくの知識がなく、参考書を何度も読んでいますが、 理解の仕方が分かりません。 下記のwhileの例文にについてお教えください。 <?php echo "整数を入力:"; $a = trim(fgets(STDIN)); $result = false; $n = 2; while($n <= $a/2){ if($a % $n == 0){ $result = true; } $n++; } if($result){ echo $a . "は、素数じゃないです。"; } else { echo $a . "は、素数です。!!"; } ?> 例文の中の$result = false; や$result = true;が 参考書には説明していなく、 どのようにwhileの構文では解釈すればよいのか お教えください。(あってもなくてもよいのか?) この$result = false;がなくてもPHPで動作はできるのは確認済みなのですが、 どうしてもこの部分が気になり、理解をしようと別の参考書のwhileの部分を読みましたが、 全く理解できませんでした。 この程度の知識で無謀だというのは十分承知しておりますが、 今後も同様な事(何が書いてあるか分からない)が起きると思いますので、 何か良いアドバイスをお願い致します。

  • PHPスペース区切り、複数単語が検索できません

    お日ごろから大変お忙しい中、この投稿を見て頂きまして誠に有難うございます。私はPHP初心者です。もしこの投稿記事内容自体が私の勉強不足のために不適切な内容となっておりましたら大変申し訳ございません。至らない能力をご容赦して頂きたく存じ上げます。 現在、個人のサイトを作成しております。そこで合計6000点ほどの点数に対し文言が添えております。その文言(カラム/side_text)をフォーム検索で抽出したいのですが、単語だけならできるのですが、複数単語(スペース区切り)で検索をすると、どうしても上手くいきません。 下記にソースコードがございますので、もしお時間がございましたら、ご教授して頂けますと大変嬉しく思います。 var_dampで各要所をチェックしていったら複数単語でもちゃんとdbc.phpファイルの $result = $stmt->fetchALL(); return $result; まで返しているので、htmlへの出力方法がおかしいのかと思ったのですが、どうしても最後の最後はvar_damp()array(0)になってしまいます。 ▼▼▼▼▼【var_damp(result)の結果】▼▼▼▼▼ 「確定」と「福来い」を検索した場合 string(59) "(side_text LIKE "%確定%") AND (side_text LIKE "%福来い%")" array(0) { } ▲▲▲▲▲【var_damp(result)の結果】▲▲▲▲▲ test.phpページです ▼▼▼▼▼【フォーム検索送信】▼▼▼▼▼ <form action="search.php" method="POST"> <input type="text" name="search" placeholder="検索ワードを入力して下さい" autocomplete="off"> <input type="submit" value="SAERCH"> </form> 【html内の出力結果】  <?php if(isset($results)) : ?> <?php foreach($results as $result) : ?>    <?php echo $result['side_text'] ; ?> <?php endforeach ; ?> <?php endif ; ?> ▲▲▲▲▲【フォーム検索送信】▲▲▲▲▲ search.phpページです ▼▼▼▼▼【フォーム検索送信/test.phpから受け取り】▼▼▼▼▼ $err = []; if(!$search = filter_input(INPUT_POST, 'search')){ $err['search'] = '検索ワードを入力して下さい'; } if(count($err) > 0){ $_SESSION = $err; header('Location: test.php'); return; } if(count($err) === 0){ $results = search($_POST['search']); } ▲▲▲▲▲【フォーム検索送信/受け取り】▲▲▲▲▲ dbc.phpページです ▼▼▼▼▼【dbc.phpページ】▼▼▼▼▼ function search(){ $result = false; $keywords = $_POST['search']; $keywords = mb_convert_kana($keywords, 's'); $ary_keyword = preg_split('/[\p{Z}\p{Cc}]++/u', $keywords, 5, PREG_SPLIT_NO_EMPTY); $ary_keyword = explode(" " ,$keywords, 5); $keywordCon = []; foreach( $ary_keyword as $keyword ){ $keywordCon[] = '(side_text LIKE "%' . $keyword . '%")'; } $keywordCon = implode(" AND ", $keywordCon); $sql = "SELECT * FROM test1 WHERE". $keywordCon; var_dump($keywordCon); try{ $stmt = dbc()->prepare($sql); $result = $stmt->execute(); $result = $stmt->fetchALL(); return $result; }catch(\Exception $e){ echo 'Something wrong 3'. $e->getMessage(); return $result; } } ▲▲▲▲▲【dbc.phpページ】▲▲▲▲▲ 間違いだらけのコーディングとは存じ上げますが、どうぞよろしくお願い申し上げます。

    • ベストアンサー
    • MySQL
  • 秀丸の強調表示について(PHP)

    お世話になります。 2つ質問があります。 現在PHPのファイルで、HTMLの内容をヒアドキュメントとして入力していますが、中にあるPHPの変数({$abc})の内容を強調表示したいのです。 (例) $abc = PHP; (略) $s_msg = <<<EOH <body> {$abc} <body> EOH; この{}の内容を強調表示したいのですが可能でしょうか。 ([\{].+?[\}])としてみましたが、PHPの内容しか強調表示されていませんでした。 もう一つは、 強調表示を2重括弧でできるかどうかです。 例"{abc}"のように、ダブルクオーテーションの中の{}の内容を強調表示したいのです。 まだ勉強中で申し訳ございませんがよろしくお願いします。

  • ソースの意味がわかりません。

    先日PHPのコミュで質問して回答をいただいたのですが、その後、その回答に質問したのですが回答がなくて、どうしてもソースの意味がわからず困っています。分かる方どうかご教示ください。 クラスファイルの一部ですが、 ────────────────── function __is_browser_pc() { $browser = __get_browser(); switch ($browser) { case 'docomo': case 'au': case 'softbank': return false; default: return true; } return true; } function session_start_smart() { $is_pc = __is_browser_pc(); if (!$is_pc) ini_set('session.use_trans_sid', '1'); session_start(); } function session_url_smart($url) { $is_pc = __is_browser_pc(); if (!$is_pc) { $url.= (strpos($url, '?') === false ? '?' : '&') . SID; } return $url; } ?> ──────────────────── get_browser(); はブラウザを調べているのだと思います。 is_browser_pc() の下のほうの ///////////////////////////// default: return true; } return true; } ///////////////////////////// 最初の「return true;」 はわかりますが、次の「return true; 」の意味は何でしょうか? あと「session_url_smart」の ///////////////////////////// $url.= (strpos($url, '?') === false ? '?' : '&') . SID; ///////////////////////////// この部分がわかりません。 プログラム自体初心者です。 よろしくお願いいたします。

    • ベストアンサー
    • PHP