• ベストアンサー

よく、書式で出てくる ○○ ( ○○, ○○ [, ○○ ] ) の

saintandreの回答

回答No.3

関数の説明のおける [ ] は「その部分は省略できます」という意味です。省略した場合は関数ごとに適当な処理が行われます。 例えば mb_substr 関数の場合は文字数を省略すると開始位置から最後までの文字列が得られます。 mb_substr( 'この質問に回答します', 2 , 5 );  結果:質問に回答 mb_substr( 'この質問に回答します', 2 );  結果:質問に回答します また、[ ] の内部に「,」が含まれているのは「,」も同時に省略する必要があるからです。 ※「,」を省略しなかった場合 mb_substr( 'この質問に回答します', 2 , );  結果:(エラーになります) なお、自分で定義した関数でこのような省略可能な引数を設定したい場合は以下のように引数名の指定の際に定数を代入することで設定可能になります。 function makecoffee($type = "cappuccino") { return "Making a cup of $type.\n"; } 詳しくは下記のページをご参照ください。 関数の引数:デフォルト引数値 http://jp2.php.net/manual/ja/functions.arguments.php

noname#179453
質問者

お礼

ありがとうございます!! とても分かりやすかったです。 省略可能ってことだったんですね。 やっと理解できました☆

関連するQ&A

  • PHPでのsubstr関数について

    PHPで、3問ほど質問です。 問1 PHPでプログラムを作成していて、思った結果が出てこないので、変数やら配列やらの 中身を表示させつつ、原因らしきものを突き止めました。 substr関数 です。 手元のプチリファレンスには、 substr(元の文字列,抽出開始位置,抽出する文字数) のようなことが書いてあるのですが、 抽出開始位置 ではなく、抽出を開始したい手前の位置 ではないのかと思いました。 というのも、 echo substr("abc",0,1); は、a が表示されますし、 echo substr("abc",3,1); は、何も表示されないからです。 というわけで、 substr(元の文字列,抽出を開始したい手前の位置,抽出する文字数) でいいのでしょうか? ○文字目から数えて、△文字分としたときにずれて表示されるので、ヘンだな~と 思っているのですが…。 問2 DOSプロンプト経由で、PEARをインストールしてみました。 (自分のパソコンです。XAMPPを使用しています) 最終的にinstall ok と表示されましたが、Warnning というメッセージがちらほらと。 大丈夫なんでしょうか? ただ、PEARの機能は使えましたが…。 問3 値を送る・返す関数ではなく、PHPで、サブルーチンというか、VBやVBAでいえば、Call文で 呼んでくるような、文の書き方を教えてください。 sub_keisan(); function sub_keisan(){ } のような引数なしの関数の書き方でいいのでしょうか?

    • ベストアンサー
    • PHP
  • 全角半角あわせて3文字

    全角半角が混在している文字列の左から3文字を取得したい場合にいい方法はないでしょうか? mb_substr関数で第3パラメータはバイト数で指定するようです。 関数リファレンスでは「最大文字数」って表現になってます。 http://php.net/manual/ja/function.mb-substr.php 半角なら文字数=バイト数ですが、全角だと指定の半分の文字数になります。 最大だから間違ってはないですが、文字数じゃないよな‥‥っていつも思ってます。 いったん半角→全角にして、6バイト分を切り出すのはできます。 でも、英数字も全角半角混在してるので元の文字列を壊したくないのです。 mb_substrの第3パラメータを6から3まで、mb_strlenが3になるまで回すのもやってみました。 でも、なんかスマートじゃないんですよ‥‥。 なにかこう、スマートないい手はないでしょうか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • エクセルでセル内の指定文字列のみの書式を変更するVBA

    こんにちは。 エクセルで、どうしてもやり方がわからないものがあるので教えてください。 セル内で指定した文字列のみの書式を変更する方法です。 例えば A1に 『ああいいううええおお』 と入っていたら、 『う』だけを太字にする。 調べてみると、書式変更したい文字の開始位置を指定するという方法がありました。 ですが毎回開始位置が違うので、直接文字列を指定する様な方法があれば教えてください。 宜しくお願いします。

  • 書式文字列

    書式文字列と文字列リテラルの意味の違いがわかりません。おしえていただけないでしょうか

  • 文字列カットでの文字化けについて

    文字列のカットなのですが、 mb_substrを使っても最後が文字化けするので、 エンコーディング名を追加したら文字列がカットされなくなってしまいました。 以下のファイル http://www.hp-toolbox.com/rssup.zip に含まれるrssup.phpの 44行目 if (mb_strlen($title,"SJIS") > 46) { 45行目 $title = mb_substr($title,0,46,"SJIS"); $title .= "..."; 46行目 } です。 どなたか上手くいく方法を教えて下さい。 宜しくお願い致します。

    • 締切済み
    • PHP
  • phpのsubstr_countについて

    <?php $str = "検索対象の文字列をここに指定します。文字列です。文字列。"; $word = "文字列"; var_dump( substr_count( $str, $word ) ); ?> とするとint(3)と帰ってくると思いますが、もし出現回数が5回以上であれば$wordを表示するというプログラムを書きたいのですが、php初心者なのでよくわかりません どなたかアドバイスお願いします。

    • 締切済み
    • PHP
  • Word2000で段落の設定だけを書式コピーするには?

    Word2000での書式のコピーに関する質問です。 段落に対する設定、つまりインデントやタブ位置、行揃え*だけ*を簡単に別の段落にコピーする方法はありますか? 「書式のコピー/貼り付け」だと文字の設定(文字色やフォントなど)もコピーされてしまいます。 文字列を選択しないで段落内にカーソルを置いて「書式のコピー」し、コピー先でクリックする、で上手くいくかと思っていたのですが、コピー元とコピー先で文字書式が異なっていると文字書式もクリックした文字列にコピーされてしまいます。。。 よろしくお願いします。

  • スプレッドシートの条件付き書式で2条件を適用したい

    Googleスプレッドシートの条件付き書式を利用して、添付画像のように、 1. B列の値が0ならば、A列のセルをピンク色にする。 2. C列の値が0ならば、A列の文字を太字にする。 というふうにしたいと考えています。 しかし、現時点で私は「1」しか実現できていません。 というのも、条件付き書式で 範囲に適用→A1:A3 書式ルール→カスタム書式「=B1=0」 書式設定のスタイル→セルをピンク色に とすればまずセルをピンクにはできますが、「+条件を追加」ボタンから 範囲に適用→A1:A3 書式ルール→カスタム書式「=C1=0」 書式設定のスタイル→文字を太字に を設定しても、こっちは無視されるのです。どうすればよいでしょうか。

  • VLOOKUP関数でのセルの書式設定

    エクセルマイスターの皆様へ VLOOKUP関数を、やっと使い始めた初心者です。 皆様のご回答をいろいろ検索して、セルの書式設定を”文字列”に統一したり、”区切り位置”の妙策を使ってみたりしてみましたが、私のやり方が悪いせいか、なかなかうまくいきません。 検索は、一つのデータから2系統で実行したかったので、元データのシートから関数を実行するシートへ2系統の表にして「リンクの貼り付け」をしました。それぞれの検索をするセルについては、セルの書式設定で”文字列”を選択したつもりなのですが。 皆様の御知恵をお貸し下さい。

  • エクセル、条件つき書式の数式について

    いろいろ自分でやってみたのですが、どうしてもできないので よろしくお願いします。 参考書を数冊読んだ程度のエクセル初心者です。 条件つき書式の数式に「OR」は使えますか? 列にA1からA2に順に「1~50」のように連続した数字を入れ、 うち「3と7と13」などというように、規則性のない数字の 入っているセルのみを塗りつぶすなどして、書式を変えたいのです。 なので、A1から下のセルを範囲で指定して、 書式 → 条件つき書式 の 条件(1) の数式に 「=OR(3,7,13)」 と入力してみたのですが、 結果は思ったとおりにはなりませんでした。 (書式はどのセルも変わらず) 何か間違っているでしょうか? それとあと一つなのですが。 上の条件をもう一度確認しようと、数式を見てみると (書式→条件つき書式とすすんで) 「="OR(3,7,13)"」 のように「”」で囲まれていました。 ためしにその「”」を削除して「OK」にすると、 今度は範囲指定した全部のセルが塗りつぶされてしまいました。 初歩的なことなのでしょうが、この「”」は いったいどんな意味があるのですか? 以上よろしくお願いいたします。 補足が必要ならばいたします。 遅くなるかもしれませんが、必ずお礼は書かせていただきます。